JavaStudy:回文子串
总时间限制:
1000ms
内存限制:
65536kB
描述
给定一个字符串,输出所有长度至少为2的回文子串。
回文子串即从左往右输出和从右往左输出结果是一样的字符串,比如:abba,cccdeedccc都是回文字符串。
输入
一个字符串,由字母或数字组成。长度500以内。
输出
输出所有的回文子串,每个子串一行。
子串长度小的优先输出,若长度相等,则出现位置靠左的优先输出。
样例输入
123321125775165561
样例输出
33 11 77 55 2332 2112 5775 6556 123321 165561
代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.next();
int n = s.length();
for (int i = 2; i <= n; i++) {
for (int j = 0; j <= n - i; j++) {
String s1 = s.substring(j, j + i);
if (huiwen(s1)) {
System.out.println(s1);
}
}
}
}
static boolean huiwen(String s){
for (int j = 0; j < s.length()/2; j++) {
if (s.charAt(j)!=s.charAt(s.length()-1-j)) {
return false;
}
}
return true;
}
}
思路
for循环嵌套判断是否为回文
知识
stringObject.substring(start,stop)
从start开始(包括start)取子串到stop(不包括stop)