zoukankan      html  css  js  c++  java
  • Leecode no.9 判断回文数

    package com.example.demo.leecode;

    import java.util.Stack;

    /**
    * 判断回文整数
    * @Date 2020/11/26
    * @author Tang
    *
    * 请判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
    */
    public class DeterminePalindrome {


    /**
    * 方法一 用栈数据结构,前一半先入栈,然后出栈和后一半逐个比较
    * @param x
    * @return
    */
    public boolean execute1(int x){
    int index = 0;

    if(x <= 0){
    return false;
    }

    String s = String.valueOf(x);
    char[] chars = s.toCharArray();

    Stack<Character> stack = new Stack<Character>();
    //判断奇偶
    if(chars.length % 2 == 0){
    //入队一半
    for(; index < chars.length/2; index++){
    stack.push(chars[index]);
    }

    //出队一半作比较
    //出现不一样的直接返回
    for(; index < chars.length; index++){
    if(stack.pop() != chars[index]){
    return false;
    }
    }
    }else{

    for(; index < chars.length/2; index++){
    stack.push(chars[index]);
    }
    //过滤掉中位数
    index++;

    for(; index < chars.length; index++){
    if(stack.pop() != chars[index]){
    return false;
    }
    }

    }

    return true;
    }


    /**
    * 方法二 将数字反转,然后直接比较
    * @param x
    * @return
    */
    boolean execute2(int x) {
    if (x<0){
    return false;

    }
    int sum =0;
    int origin = x;
    while(x != 0)
    {
    int num = x %10;
    sum = sum*10 + num;
    x/=10;
    }
    if(sum == origin){
    return true;
    }

    return false;
    }

    public static void main(String[] args) {

    DeterminePalindrome determinePalindrome = new DeterminePalindrome();
    System.out.println(determinePalindrome.execute1(5885));


    }

    }
  • 相关阅读:
    集合及特殊集合arrayList
    二维数组、多维数组
    一维数组

    for循坏的穷举与迭代,while、do while循环
    1.兔子生兔子问题2.打印菱形3.求100以内质数的和
    for循环嵌套
    复习题
    循环语句
    分支语句
  • 原文地址:https://www.cnblogs.com/ttaall/p/14041221.html
Copyright © 2011-2022 走看看