判断一个序列是否可由给定序列通过栈操作获得
Java代码:
public class LegalSequence {public static void main(String[] args) {// System.out.println(legalSequence("BAECD"));arr("ABCDE");}/*** 判断一个序列是否可由给定序列通过栈操作获得* @param s* @return*/public static boolean legalSequence(String s) {for (int i = 0; i < s.length(); i++) {int index = i;int temp = i;for (int j = i + 1; j < s.length(); j++) {if (s.charAt(j) < s.charAt(index)) {if (s.charAt(j) > s.charAt(temp)) return false;temp = j;}}}return true;}/*** 输出ABCDE全排列中所有符合上面方法的序列* @param s*/public static void arr(String s) {arr(s.toCharArray(), 0, s.length() - 1);}/*** 对数值a中p下标到q下标进行全排列* @param a* @param p* @param q*/private static void arr(char[] a, int p, int q) {//当找出一个排列时,打印数组if (p == q) {//打印验证String str = "";for (int i = 0; i < a.length; i++) {str += a[i];}if (legalSequence(str)) System.out.println(str);return;}//后面的元素都要和第一个元素进行交换,求剩余的元素的全排练,把交换的元素再换回来for (int i = p; i <= q; i++) {swap(a, p, i);arr(a, p+1, q);swap(a, p, i);}}/*** 交换* @param a* @param i* @param j*/public static void swap(char[] a, int i, int j) {char temp = a[i];a[i] = a[j];a[j] = temp;}}
判断一个序列是否可由给定序列通过栈操作获得相关推荐
- Java判断一个序列是否可由给定序列通过栈操作获得(ABCDEF)
Java栈操作中的代码题目你是否已经掌握了呢?接下来上题目叭~~~ 判断一个序列是否可由给定序列通过栈操作获得(ABCDEF) 这是基础题噢 学不会就打你pp呜呜呜~ 还是那句话,原创禁止转载侵权必究 ...
- php 判定是否是数组,php判断一个数组是否为有序
php判断一个数组是否为有序 php判断一个数组是否为有序的'方法,涉及php操作数组遍历的相关技巧,非常具有实用价值,需要的朋友可以参考下. 这段代码的时间复杂度为O(n) function Jud ...
- 给定入栈序列,判断一个串是否为出栈序列
剑指offer22:给定入栈序列,判断一个串是否为出栈序列 public static boolean isOutStackSequence(int[] Spush, int[] Spop) {if ...
- 题目 给定一个字符串所表示的括号序列,包含以下字符: '(', ')', '{', '}', '[' and ']', 判定是否是有效的括号序列。 样例 括号必须依照 ()顺序表示, ()[]
题目 给定一个字符串所表示的括号序列,包含以下字符: '(', ')', '{', '}', '[' and ']', 判定是否是有效的括号序列. 样例 括号必须依照 "()"顺序 ...
- C++判断一个序列是否为堆(最大堆、最小堆)
参考:https://blog.csdn.net/guoweimelon/article/details/50904346 1.如何判断一个序列是不是堆? 把这个序列看成是数组型的二叉树,如果根节点是 ...
- 谈谈如何判断一个Pop序列是否是一个Push序列的Pop顺序
有这样一道题目: 输入两个整数序列.其中一个序列表示栈的push顺序, 判断另一个序列有没有可能是对应的pop顺序. 我们来模拟入栈和出栈的过程: 这里有三个角色: Push序列:它的动作只有 ...
- 判断一个序列是否为栈的有效输出序列
栈的实际应用-判断一个序列是否为栈的有效输出序列 对于数据结构学科的初学者,栈的构建是很重要的知识,判断一个栈是否为有效输出序列是其中重要的题目.笔者整理了三种C++代码,其核心编程思想大致相同,希望 ...
- 《剑指offer》:[22]如何判断一个序列是否为栈的弹出序列
题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序. 假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压栈序列,序列4,5,3,2,1是该压栈序列 ...
- Havel-Hakimi定理(判断一个度序列是否可图)
1,Havel-Hakimi定理主要用来判定一个给定的序列是否是可图的. 2,首先介绍一下度序列:若把图 G 所有顶点的度数排成一个序列 S,则称 S 为图 G 的度序列. 3,一个非负整数组成的有限 ...
最新文章
- 安卓按键精灵_月薪3w的按键精灵大神都是从这个命令开始起步的
- vs2015上使用github进行版本控制
- 找不到或无法加载主类
- js 格式化带时区的日期
- boost::test模块装饰器数据测试用例测试
- ksweb如何安装php5.6_php5 安装 swoole 模块
- 树莓派 VNC Viewer 远程桌面配置教程
- MyBatis源码分析-IDEA新建MyBatis源码工程
- 2019ICPC(银川) - Largest Common Submatrix(单调栈)
- python语言中split-python中的split()函数和os.path.split()函数使用详解
- 【clickhouse】clickchouse的分区合并速度小于插入速度会怎么样
- cisco 三层交换机作DHCP服务器的配置
- Hive thrift服务(将Hive作为一个服务器,其他机器可以作为客户端进行访问)
- 处理Oracle 11g在用EXP导出时,空表不能导出
- 截止失真放大电路_基本共射放大电路的特点你懂了吗?
- ISP Pipeline lens shading
- octomap(1):octomap_server报错MessageFilter [target=odom_combined ]: Dropped 100.00% of messages so far
- 系统学习深度学习(六) --LSTM总结
- 计算机对英语写作的帮助,2018年6月英语六级写作范文:计算机对写作能力的影响...
- DDOS攻击相关问题