在键盘上输入任意40个字符,查找其中符合回文条件的字符串,并将回文字符串输出。
代码如下,通俗易懂,有帮助的话采纳一下哦!
public class Demo {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<String> arr = new ArrayList<String>();
Scanner sc = new Scanner(System.in);
String str = sc.next();
int len = str.length();
for(int i=0;i<len;i++) {
for(int j=i+1;j<=len;j++) {
String now = str.substring(i,j);
if(isHw(now)) {
arr.add(now);
}
}
}
for(String s:arr) {
System.out.println(s);
}
}
public static boolean isHw(String s) {
for(int i=0;i<s.length()/2;i++) {
if(s.charAt(i)!=s.charAt(s.length()-1-i)) {
return false;
}
}
return true;
}
}
是这个字符串中所有的回文子串吗?
public class HelloWorld {
public static void main(String []args) {
Scanner sc = new Scanner(System.in);
String s = sc.next();
countSubstrings(s);
}
public static void countSubstrings(String s) {
for(int i = 0; i < s.length(); i++){
count += countPalindrome(s,i,i);
if(i < s.length()-1){
countPalindrome(s,i,i+1);
}
}
}
public static void countPalindrome(String s,int left, int right){
while(left >= 0 && right <= s.length()-1){
if(s.charAt(left) == s.charAt(right)){
for(int i=left;i<=right;i++)
System.out.print(s.charAt(i));
System.out.println();
left --;
right ++;
} else {
break;
}
}
}
}
至少3个字才算回文