这是自己第一次写博客,如有不当,敬请谅解。
首先,什么是回文?直接举例子:121,我为人人,人人为我,就是回文,我爱你就不是回文。
然后说一下自己的解题思路:
1)将整数转换为字符串型。
int x=520025;
String input = Integer.toString(x);
2)利用栈的性质(后进先出)和charAt()方法将字符串以单个字符的形式压栈。
Stack s = new Stack();
for (int i = 0; i < input.length(); i++) {
s.push(input.charAt(i));
}
3)出栈。
while (!s.isEmpty()) {
s.peek();
output += s.pop();
}
4)判断入栈前的字符串是否与出栈后的相等,若相等,则返回true,是回文,否则,返回false,不是回文。
boolean flag = input.equals(output);
System.out.println(flag);
完整代码:
import java.util.Stack;
public class Huiwen {
public static void huiwen(int x) {
String input = Integer.toString(x);
String output = "";
Stack s = new Stack();
for (int i = 0; i < input.length(); i++) {
s.push(input.charAt(i));
}
while (!s.isEmpty()) {
s.peek();
output += s.pop();
}
boolean flag = input.equals(output);
System.out.println(flag);
}
}
个人总结:
1)从JavaAPI的文档中理解将整数化为字符串的方法和栈的一些基本操作。
2)理解charAt()方法:返回指定索引出的字符。索引范围为0到
lengh()-1.