大一的时候老师上课的经典例子就是回文字符串判断,我觉得经典,也保留了下来。
很简单的判断,即字符串从前往后输出和从后往前输出都是一样的结果。是不是想到了什么,没错,就是栈(FIFO),用这个就可以很好的解决这个问题啦~
publicclassHuiWenString
{
publicString
isHuiWen(Stringstring){
intmid;
inttop=0;
char[]charOne;
if(string.length()==1)
return"Yes";
mid=string.length()/2;
charOne=newchar[mid];
//System.out.println("mid="+mid);
for(inti=
0;i<mid;i++){
charOne[i]=string.charAt(i);
top++;
}
top--;
//charOne[top]
= string.charAt(top);
//charOne[i-1]
= string.charAt(i-1);
//System.out.println("top="+top);
// for(inti=0;i<charOne.length;i++)
//System.out.println("char="+charOne[i]);
if(string.length()%2==0){
System.out.println("s-mid="+string.charAt(mid)+"c-top="+charOne[top]);
System.out.println(string.charAt(mid)!=charOne[top]);
if(string.charAt(mid)!=charOne[top]){
return"NO1";
}else{
top--;
for(intj=mid+1;j<string.length()-1;j++)
if(string.charAt(j)!=charOne[top--])
return"NO2";
}
return"YES";
}else
for(intk=mid+1;k<string.length()-1;k++)
if(string.charAt(k)!=charOne[top--])
return"NO3";
if(top==0)
return"YES";
return"Error";
}
publicstaticvoidmain(String[]args)
{
Scannerscanner=newScanner(System.in);
System.out.println("请输入待判断的字符串:");
Stringstring=scanner.nextLine();
HuiWenStringhuiWenString=newHuiWenString();
System.out.println(huiWenString.isHuiWen(string));
}
}
本文介绍了一种使用Java实现的回文字符串判断方法。通过将字符串的一半字符存入数组,并与另一半进行比较来判断是否为回文。适用于初学者理解和实践。
3244

被折叠的 条评论
为什么被折叠?



