判断一个整数是否是回文(JAVA语言 栈结构)

这是自己第一次写博客,如有不当,敬请谅解。

首先,什么是回文?直接举例子: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.

猜你喜欢

转载自blog.csdn.net/qq_43785075/article/details/104268374