最近遇到很多判断回文的问题,这里列出自己的一些解决思路
回文简单的解释就是前后翻转之后还是相同的
这里先说一下判断回文字符串的三种思路:递归、双指针以及字符串翻转
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;
}
希望有其他思路的朋友可以留言进行交流,谢谢