看到一道阿里电面的题目,给定一个字符串,输出其所有连续子串,如:给定字符串为abcd,则要输出的其全部连续子串为:a,b,c,d,ab,bc,cd,abc,bcd,abcd。
我给出的JAVA算法如下:
public class Abc {
public static void main(String[] args) {
String str = "abcd";
// step 为步长
for (int step = 1; step <= 4; step++) {
for (int i = 0; i + step <= str.length(); i++) {
System.out.println(str.substring(i, i + step));
}
}
}
}
求各位大神优化。