import java.util.Scanner;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class MyClass {
public static void main(String args[]) {
int counter=0;
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt(); // read an integer from input stream.
String s = scanner.next();
char string_array[] = s.toCharArray();
for(int i=0; i<s.length(); i++){
for(int j=i; j<=s.length(); j++){
if(i != j){
String s1 = s.substring(i,j);
String rev = "";
for(int z=0; z<s1.length(); z++){
rev = rev + s1.charAt(s1.length()-1-z);
}
//System.out.println("s1=" + s1 + "rev=" + rev);
int count = s1.compareTo(rev);
if(count == 0){
counter++;
}
}
}
}
System.out.println(counter);
}
您的算法没有检查字符相等的特殊回文要求。以下算法添加了这种检查:
public class MyClass {
public static void main(String args[]) {
int counter=0;
String s = "abcbaba";
char string_array[] = s.toCharArray();
for(int i=0; i<s.length(); i++){
for(int j=i; j<=s.length(); j++){
if(i != j){
String s1 = s.substring(i,j);
String rev = "";
char complianceChar = s1.charAt(0);
boolean isSpecialPalindrom = true;
boolean isLengthEven = s1.length()%2==0;
for(int z=0; z<s1.length(); z++) {
char c = s1.charAt(s1.length()-1-z);
rev = rev + c;
boolean isMiddleChar = (z == (s1.length()-1)/2);
if(isSpecialPalindrom && (isLengthEven || !isMiddleChar)) {
isSpecialPalindrom = (c == complianceChar);
}
}
int count = s1.compareTo(rev);
if(count == 0 && isSpecialPalindrom){
System.out.println(rev);
counter++;
}
}
}
}
System.out.println(counter);
}
}
输出是:
a
b
bcb
c
b
bab
a
aba
b
a
10
我写了一个java程序,它基本上和wordle一样。例如,给定2 3x3行 如果猜测与答案匹配(在本例中,索引[0][0]),则将其标记为“绿色” 如果猜测与确切位置的答案不匹配,但它是有效的(例如,答案[1][0]处的答案与猜测[1][0]处的答案不匹配,但是猜测[0][1]处的答案),则将被计为“黄色” 这是我目前拥有的代码。它适用于这个测试用例和除一个之外的所有其他测试用例。我似乎没能抓住我
问题内容: 我有一个字符串“ ́aúlt”,我想根据字符位置等获得操纵的长度。问题在于第一个数字被计数两次,或者我猜数字在位置0而数字在位置1。 Python中是否有任何可能的方式来将像“ ́”这样的字符表示为1? 我正在将UTF-8编码用于输出的实际代码和网页。 编辑:关于为什么我需要这样做的一些背景。我正在做一个项目,该项目将英语翻译成塞内卡(一种美洲原住民语言),而„ ́出现了很多。某些单词
我写了一个java程序,基本上实现了wordle的功能。例如,给定2 3x3行 我目前不太担心速度,它的性能和我对简单实现的期望差不多。
下面TestNG执行测试用例会导致失败。错误-org.openqa.selenium.WebDriverExcture:在处理命令时发生了未知的服务器端错误。原始错误:无法将命令代理到远程服务器。原始错误:错误:套接字挂断(警告:服务器没有提供任何堆栈跟踪信息)命令持续时间或超时: 56毫秒
我的回文程序有一点逻辑错误,当我在字符串的前面或后面插入特殊字符时,我得到一个指示,表明该字符串不是回文。我正在编写回文,以便在考虑字符串时忽略所有特殊字符。例如,@bob将被认为不是回文,而b@ob将被认为是回文。我该如何编辑我的代码,使特殊字符被忽略,而不管位置在哪里?所有这些都是通过递归完成的。 ''' import java.util.Scanner; 公共类递归练习{ } '''
我有一个HashMap,里面有键和值。我想用字符串中映射的值替换键。 在字符串中,键被写成@keyname或@“keyname”,这些应替换为map.get(“keyname”) 假设我们的地图是这个 所以如果我们处理字符串“Hello world,Iam@key1 years old.”,它将变成“Hello world,Iam 2 years old.”。 我们可以用@“key1”代替@key