我最近写了这个简短的方法来判断一个字符串是否是回文。我想知道我可以做些什么来提高效率,当然我缺少可以加快计算速度的简单内置函数。
谢谢大家的帮助!
boolean checkPalindrome(String inputString) {
ArrayList<Character> arrFront = new ArrayList<Character>();
ArrayList<Character> arrBack = new ArrayList<Character>();
for(int i=0; i<inputString.length()-1; i++) {
arrFront.add(inputString.charAt(i));
}
for(int i=inputString.length()-1; i>0; i--) {
arrBack.add(inputString.charAt(i));
}
StringBuilder builder1 = new StringBuilder(arrFront.size());
for (Character c : arrFront) {
builder1.append(c);
}
String front = builder1.toString();
StringBuilder builder2 = new StringBuilder(arrBack.size());
for (Character c : arrBack) {
builder2.append(c);
}
String back = builder2.toString();
return(front.equals(back));
}
最佳答案
在效率方面,并不总是与内置函数和使用库有关(尽管在许多情况下它们是最佳选择)。但有时像这样的简单循环可能是最简单有效的方法:
private boolean checkPalindrome(String inputString) {
for(int i = 0, j = inputString.length() - 1; i < j; i++, j--) {
if(inputString.charAt(i) != inputString.charAt(j)) {
return false;
}
}
return true;
}
关于java - 确定输入字符串是否为回文的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53908237/