我最近写了一个简单的方法来判断一个字符串是否是回文。我想知道如何让它更加高效,肯定有一些内置函数可以加速计算。
感谢大家的帮助!
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));
}
for (int i = 0; i < n/2; ++i) { if (str.charAt(i) != str.charAt(n-i-1)) return false; }
)是更好的选择。 - GBlodgettstr.length()
也会加快速度!提前返回将节省时间。 - Glainsn
代表的含义。它被解析为一个变量,以避免在循环的每次迭代中调用两次length()
方法。 - GBlodgett