华为上机练习题--判断某数字是否是回文数字

题目描述:有这样一类数字,他们顺着看和倒着看是相同的数。

    如:121,656,2332等。这样的数字称为回文数字。

    编写一个函数,判断某数字是否是回文数字。

    public booleanisPalidrome(String strIn)

     输入:strIn:整数,以字符串表示

     返回:true:是回文数字

         false:不是回文数字

    只需完成该函数功能算法,中间不需要任何IO的输入和输出

    示例:输入:strIn="121",返回:true

分析:回味数字或者回文字母判断也是有多种方法的,这里用两种方法来解决这类问题,

其实不管是数字还是字符串, 本质的处理方法都是字符的处理,

1: 先将数字直接逆序, 再与原来的数字对比, 如果equal则返回true

2:直接二分数字, 对应数字逐个对比(这个简单简洁一些)


示例如下:

import java.util.ArrayList;
import java.util.List;


public class TestPalidrome {
    
    public static void main(String args[]){
        String strIn="1212";
        TestPalidrome tp = new TestPalidrome();
        System.out.println(tp.isPalidrome(strIn));
    }
/*
    //第一种方法:
    public boolean isPalidrome(String strIn){
        String tempStr = strIn;
        char[] numC = tempStr.toCharArray();
        
        List<Character> strL = new ArrayList<Character>();
        for(int i=0; i<numC.length; i++){//正序分割数字
            strL.add(numC[i]);
        }
        String temp = "";
        for(int i=strL.size()-1; i>=0; i--){//逆序组合数字
            temp+=strL.get(i);
        }
        
        if(tempStr.equals(temp)){
            return true;
        }
        
        return false;
    }
    */
    
    //第二种方法:
    public boolean isPalidrome(String strIn){
        String tempStr = strIn;
        char[] numC = tempStr.toCharArray();
        
        boolean isPalidromeNum = true;
        for(int i=0; i<numC.length/2; i++){
            if(numC[i] != numC[numC.length-1-i]){
                isPalidromeNum = false;
            }
        }
        
        return isPalidromeNum;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值