0
点赞
收藏
分享

微信扫一扫

用栈来判断回文数

代码如下所示:

/**
 * 用栈实现回文数
 * */
public class Test2 {
    public static void main(String[] args) {
        //测试代码
        System.out.println(isPalindromic("1221"));  //输出true
    }

    //判断字符串是否回文,如果是数字的话可以转换为字符串再进行回文的判断
    public static boolean isPalindromic(String val){
        //初始化一个栈
        ArrayStack stack = new ArrayStack(1024);
        //循环遍历字符串并且压栈
        for (int i = 0; i < val.length(); i++) {
            final char c = val.charAt(i);
            //压栈
            stack.addStack(c);
        }
        //然后循环遍历栈中的数据并且与原数据进行比较,如果是回文数,两个遍历的方式所得到结果就会相同
        for (int i = 0; i < val.length(); i++) {
            final char c = val.charAt(i);
            final char i1 = (char)stack.popStack();
            if(c != i1){        //注意:这里也可以使用字符串拼接的操作,将栈中的数据弹出后拼接与传递过来的字符串进行比较即可
                return false;
            }
        }
        return true;
    }
}
举报

相关推荐

0 条评论