回文是不是那个类似于这样
abcdcba
这样的啊?
回文是反着读顺着读都是一样的
所以你可以把一个String从头到尾读进(push)一个Stack里面
这样在原String里面排在最前面的字符就到了最下面
然后再一个一个pop出来,比较一下
这是我想到的比较笨的办法~~~~~~~~
String abc = "abcdcba";
Stack stack = new Stack();
for( int i = 0; i < abc.length(); i++ ){
stack.push( new Character( abc.charAt( i ) );
}
for( int i = 0; i < abc.length(); i++ ){
if( abc.charAt( i ) != ((Character)stack.pop()).charValue() ){
return false;
}
}
差不多这样吧
abcdcba
这样的啊?
回文是反着读顺着读都是一样的
所以你可以把一个String从头到尾读进(push)一个Stack里面
这样在原String里面排在最前面的字符就到了最下面
然后再一个一个pop出来,比较一下
这是我想到的比较笨的办法~~~~~~~~
String abc = "abcdcba";
Stack stack = new Stack();
for( int i = 0; i < abc.length(); i++ ){
stack.push( new Character( abc.charAt( i ) );
}
for( int i = 0; i < abc.length(); i++ ){
if( abc.charAt( i ) != ((Character)stack.pop()).charValue() ){
return false;
}
}
差不多这样吧
XKP(低等下人)的代码就很完美了
我觉得可以把这段代码封装在一个class中
import java.util.*public class LoopStringStacks{
......
public boolean IsLoopString(String s)
{
Stack stack = new Stack();
for( int i = 0; i < s.length(); i++ )
stack.push( new Character( S.charAt( i ) );
int j=0;
for( int i = 0; i < s.length(); i++ )
if( s.charAt( i ) ==((Character)stack.pop()).charValue() )
j++;
if(j==s.length())
return true;
else
return false;
}
.....
}
使用StringBuffer的reverse() 方法直接就可以反转