求字符串的所有子串
来源:互联网 发布:python 中英文转换 编辑:程序博客网 时间:2024/06/05 20:00
求字符串的所有子串,子串是保持原来的字符串的顺序的,如下面问题:
给定一个字符串,输出其所有连续子串,如:给定字符串为abcd,则要输出的其全部连续子串为:a,b,c,d,ab,bc,cd,abc,bcd,abcd。
思路:
1. 用递归法
尝试用递归法,但结果没分析出,不知道思路
2. 非递归方法
输出数据如上述 a,b,c,d,ab,bc,cd,abc,bcd,abcd 来写算法,但是代码输出结果并不是上述的结果
```public static void solve(char[] arr){ for(int i = 0;i<arr.length;i++) for(int j=i;j<arr.length;j++) for(int m =i; m<=(m+j) && m<arr.length;m++){ //if(m == arr.length) //return; System.out.println(arr[m]); // System.out.println(); } System.out.println();}```
输出数据如上述 a,ab,abc,b,bc,bcd,c,cd,d, abcd 来写算法,并参考其他博客
```static void find(char[] arr, int high){int i, j, k; for(i =0;i<= high;i++){ for(j = i;j<=high;j++){ //String str,str1 = ""; for(k = i; k<=j;k++){ String str =""; str += String.valueOf(arr[k]); //str1 += str; //arr[k] += arr[k]; System.out.println(str); //str1 = str; } System.out.println(); } System.out.println(); }}```
还有一种方式,该方式使用java 中的类string对象的substring方法,代码如下:
static void findAllSubstrings(String str,int length){
for(int i = 0 ; i < length ; i++ ){
for(int j = 1 ; j <= length - i ; j++ ){
String sub = str.substring(i, i+j);
System.out.println(sub);
}
}
}
**参考:**1. http://www.cnblogs.com/huanglei/p/3677707.html2. http://blog.sina.com.cn/s/blog_402d5d130101otu5.html
注意
本地工程索引:Demo2这个工程中的StringConbine类
0 1
- 求字符串的所有最大子串
- 求字符串的所有子串
- 求字符串的所有子串
- 求字符串的所有子字符串
- 求【无重复字母】字符串的所有子串
- [递归] 求一个字符串的所有顺序子串
- 求字符串的所有子串(Java/C++)
- 黑马程序员_求任意字符串及其所有子串的全排列
- 求字符串中满足所有字符个数相等的最长子串长度
- 输出字符串所有的子串
- 获取一个字符串的所有子串
- 求两个字符串的最大子串
- 求字符串的最长重复子串
- 求两个字符串的公共子串
- 求字符串的最长重复子串
- 求字符串的最长回文子串
- 求字符串的最长重复子串
- 求字符串的最大回文子串
- MaterialDesign设计(中)
- HttpServletRequest
- android如何安全地打印日志
- 挪威访学2:SOLA UIS 学生宿舍
- SuperSocket框架命令不被识别的一种原因
- 求字符串的所有子串
- 判断字符串是否是回文
- 求一个字符串的所有回文字串
- 学习世界上最流行的程序语言--Python(1)
- 欢迎使用CSDN-markdown编辑器
- Python 语言介绍--Python(2)
- Python语言开发环境配置--Python(3)
- 孤独的数列
- MarkDown 学习笔记