最近遇到很多判斷迴文的問題,這裏列出自己的一些解決思路
迴文簡單的解釋就是前後翻轉之後還是相同的
這裏先說一下判斷迴文字符串的三種思路:遞歸、雙指針以及字符串翻轉
1.雙指針:即在字符串前後同時進行移動判斷,對應位置上的字符是否相同:
public boolean Palindrome(String s,int start,int end){
char[] c = s.toCharArray();
if (start >= end) return true;
return c[start] == c[end] && Palindrome(s,++start,--end);
}
2.利用字符串翻轉進行判斷(這也是最直接的判斷方式):
public boolean Palindrome(String s){
StringBuffer stringBuffer = new StringBuffer(s);
return s.equals(stringBuffer.reverse().toString());
}
3.遍歷字符串進行判斷:
public boolean Palindrome(String s){
int len = s.length();
for (int i =0;i<len/2;i++)
if (s.charAt(i) != s.charAt(len-i-1))
return false;
return true;
}
希望有其他思路的朋友可以留言進行交流,謝謝