其他分享
首页 > 其他分享> > [数组]Leetcode9回文数

[数组]Leetcode9回文数

作者:互联网

Leetcode9
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 :
输入: 121
输出: true
思路1:
先变成字符串然后对比:

class Solution {
    public boolean isPalindrome(int x) {
        if(x<0) return false;
        String s1=String.valueOf(x);
        String s2=String.valueOf(new StringBuffer(s1).reverse());
        for(int i=0;i<s1.length();i++){
            if(s1.charAt(i)!=s2.charAt(i))
            return false;
        }
        return true;
    }
}

思路2:
数字对比

class Solution {
    public boolean isPalindrome(int x) {
        if(x<0) return false;
        int num=x,bot=0,top=1;
        while(x/10!=0){
            top*=10;
            x/=10;
        }
        while(num!=0){
            int left=num/top;
            int right=num%10;
            if(left!=right) return false;
            num=(num-left*top)/10;
            top/=100;
        }
        return true;
    }
}

Leetcode5:
最长回文子串:
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
示例 1:
输入: “babad”
输出: “bab”
注意: “aba” 也是一个有效答案。
动态规划
思路1:
如果有个回文串,在两端加相同的元素形成的新串也是回文串。设置两个下标i和j。如果ij之乡相同的元素,j就向右移动一个单位,i从头开始扫描。如果扫描到和j相同的判断是否是相邻元素,是的话就是回文串,不是的话就判断i和j中间的元素是不是回文串。
思路2:
中心扩散:

class Solution {
    public String longestPalindrome(String s) {
        int len=s.length();
        if (len==0) return s;
        int ll=0,rr=0,res=1;
        for(int i=0;i<len;i++){
            int l=i-1,r=i+1;
            while(l>=0&&r<len&&s.charAt(l)==s.charAt(r)){
                int x=r-l+1;
                if(x>res){
                    res=x;
                    ll=l;
                    rr=r;
                }
                l--;
                r++;
            }
            l=i;
            r=i+1;
            while(l>=0&&r<len&&s.charAt(l)==s.charAt(r)){
                int x=r-l+1;
                if(x>res){
                    res=x;
                    ll=l;
                    rr=r;
                }
                l--;
                r++;
            }
        }
        return s.substring(ll,rr+1);
    }
}

标签:return,int,res,ll,Leetcode9,num,数组,回文
来源: https://blog.csdn.net/HollowKathrine/article/details/110404338