回文字符串实现
- 思路
给定一个字符串,依次取出字符串的首尾进行判断,如果两个字符不相同,即非回文字符串;否则再将当前操作的首尾去掉,再进行上一步操作,直到最后没有字符串或者只有一个字符串。
2. 实现(Java)
/**
- 该类测试回文字符串
*/
public class test {
public static void main(String[] args) {
boolean lead=isHuiWen("585655554");
System.out.print(lead);
}
//回文字符串判断
private static boolean isHuiWen(String str){
StringBuilder strs=new StringBuilder(str);
boolean flag=true;
while (strs.length()>1){
//System.out.print("开始"+strs);
char c= strs.charAt(0);
char d= strs.charAt(strs.length()-1);
if(c!=d){
flag=false;
break;
}
strs.deleteCharAt(0);
strs.deleteCharAt(strs.length()-1);
//System.out.println("结束"+strs);
}
return flag;
}
}
3. 总结
-
优点:按人思想来,容易理解
-
缺点:性能有待优化
-
记录:操作字符串应该用stringbuffer 或者stringbuildier 而非string对象类,因为string在字符串拼接之类的操作会浪费内存,影响性能。stringbuilder性能最好,但不安全因为它是线程不同步的。stringbuffer是线程同步的,更安全,但性能较弱。