Java编程:判断含回文子串的糖葫芦串是否漂亮
以下是使用Java实现的代码:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int k = scanner.nextInt();
scanner.nextLine();
String s = scanner.nextLine();
int beautiful = 0;
for (int i = 0; i <= n - k; i++) {
String subString = s.substring(i, i + k);
if (isPalindrome(subString)) {
beautiful = 1;
break;
}
}
System.out.println(beautiful);
}
private static boolean isPalindrome(String s) {
int left = 0;
int right = s.length() - 1;
while (left < right) {
if (s.charAt(left) != s.charAt(right)) {
return false;
}
left++;
right--;
}
return true;
}
}
```
这段代码首先从输入中读取糖葫芦串的长度n和子串要求的长度k。然后读取糖葫芦串的字符串s。
接下来,使用一个循环遍历糖葫芦串的所有可能的连续子串,长度为k。对于每个子串,调用`isPalindrome`方法判断是否是回文串。如果找到了一个回文串,将beautiful的值设为1,并跳出循环。
最后,输出beautiful的值,表示糖葫芦串是否漂亮(1表示漂亮,0表示不漂亮)。
注意:这段代码假设输入是合法的,即n大于等于k,并且字符串s的长度等于n。如果输入不符合要求,可能会导致程序出错。在实际应用中,应该添加适当的输入验证和异常处理。
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。