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

 leetcode9.回文数——学习笔记_第1张图片

思路:经历了前几道题的洗礼之后,这题如果仅仅追求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

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

return true;

你可能感兴趣的:(Leetcode练习,leetcode,算法,java)