leetcode9.回文数——学习笔记

题目:力扣icon-default.png?t=L9C2https://leetcode-cn.com/problems/palindrome-number/

class Solution {
    public boolean isPalindrome(int x) {
        String s = new String(String.valueOf(x));
        char[] array = s.toCharArray();
        int left=0;
        int right=s.length()-1;
        if(array[left]=='-'){
            return false;
        }
        while(left<right){
            if(array[left]!=array[right]){
                return false;
            }
            left++;
            right--;
        }
        return true;
    }
}

 

思路:经历了前几道题的洗礼之后,这题如果仅仅追求AC的话确实是一道简单题。 大概思路是,先把int类型的对象x通过String.ValueOf(x)转化为String类型,然后通过.toCharArray()将其转化为字符数组。判断是否为回文之前,先判断是否有‘-’号,若有即可直接返回false。如果没有‘-’,只需要两个索引,头尾对应的对比其字符是否一样,若发现不一样,则可以返回false,若两个索引走到了一起仍然没有发现两两不一的字符,则表示该字符串是回文,返回true。

1.将int类型对象x转化为字符数组char[] array。中间需要通过一个String类型过渡。

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

2.设置两个索引分别为left,right。left在头,righ在尾。

int left=0;
int right=s.length()-1;

 3.判断是否有‘-’号。若有直接判断其不是回文。

if(array[left]=='-'){
    return false;
}

4.头尾一一比对。若字符一样,则left右移,right左移,直至left与right相遇或者它们对应位置的字符不一样时停止。发现两两字符不一样的,直接返回false。

while(left<right){
    if(array[left]!=array[right]){
        return false;
    }
    left++;
    right--;
}

5.如果顺利通过上述循环,则表示该串字符是回文,直接返回true即可。

return true;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hokachi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值