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));


    }

    }
  • 相关阅读:
    php PDO操作类
    PDO笔记
    修改表中的enum字段
    php四种基础算法:冒泡,选择,插入和快速排序法
    MySQL中UNION和UNION ALL的使用
    02-HTML5新的input属性
    01-HTML5的介绍
    03-body标签中相关标签
    02-body标签中相关标签
    01-html介绍和head标签
  • 原文地址:https://www.cnblogs.com/ttaall/p/14041221.html
Copyright © 2011-2022 走看看