成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

leetcode9 Palindrome Number 回數(shù)

Songlcy / 2248人閱讀

摘要:所以可以采用從右至左遍歷數(shù)字并按照添加順序有小到大生成新的數(shù)字,判斷最終生成的數(shù)字是否和遍歷結(jié)束的數(shù)字相等。這里需要考慮一種特殊情況,即當(dāng)末尾為的情況。

題目要求:判斷一個數(shù)字是否是回數(shù),不能同使用自然數(shù)生成string或數(shù)組那樣的方式實現(xiàn)
回數(shù)的定義:一個自然數(shù),如果該自然數(shù)從左向右讀和從右向左讀都是一樣的數(shù),則這個數(shù)為回數(shù)(隱藏條件,回數(shù)不可以為負(fù)數(shù))

思路一:雙指針

將數(shù)字看成是一個數(shù)組,使用兩個指針分別指向這個數(shù)字的首尾,并且判斷當(dāng)前左右指針上的數(shù)字是否相等,相等則繼續(xù)推進(jìn)直至左右指針相遇

    //雙指針,將左右指針分別指向數(shù)字的首位
    public boolean isPalindrome(int x) {
        if(x<0 || (x%10==0&&x!=0)){
            return false;
        }
        int rightPointer = 0;
        //獲得右指針的初始值,即數(shù)組的長度
        while(Math.pow(10, rightPointer)<=x){
            rightPointer++;
        }
        rightPointer--;
        int leftPointer = 0;
        while(rightPointer>leftPointer){
            int left = (int) (x/Math.pow(10, leftPointer)%10);
            int right = (int) (x/(Math.pow(10, rightPointer))%10);
            leftPointer++;
            rightPointer--;
            if(left!=right){
                return false;
            }
        }
        return true;
    }
思路二:判斷生成的數(shù)字是否相等

上面用數(shù)組的思維解決數(shù)字的遍歷是一種方法,但是要先通過一圈遍歷獲得右指針,增加了時間。所以可以采用從右至左遍歷數(shù)字并按照添加順序有小到大生成新的數(shù)字,判斷最終生成的數(shù)字是否和遍歷結(jié)束的數(shù)字相等。
這里需要考慮一種特殊情況,即當(dāng)末尾為0的情況。若不優(yōu)先考慮該情況,就會生成錯誤的結(jié)果

    public boolean isPalindrome2(int x) {
        if(x<0 || (x%10==0&&x!=0)){
            return false;
        }
        int res = 0;
        while(x>res){
            res = res*10 + (x%10);
            x /= 10;
        }
        return (x==res || x==(res/10));
    }


想要了解更多開發(fā)技術(shù),面試教程以及互聯(lián)網(wǎng)公司內(nèi)推,歡迎關(guān)注我的微信公眾號!將會不定期的發(fā)放福利哦~

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/66888.html

相關(guān)文章

  • leetcode132. Palindrome Partitioning II

    摘要:題目要求現(xiàn)在有一個字符串,將分割為多個子字符串從而保證每個子字符串都是回數(shù)。我們只需要找到所有可以構(gòu)成回數(shù)的并且得出最小值即可。即將字符作為,將字符所在的下標(biāo)列表作為。再采用上面所說的方法,利用中間結(jié)果得出最小分割次數(shù)。 題目要求 Given a string s, partition s such that every substring of the partition is a ...

    jeyhan 評論0 收藏0
  • leetcode409.Longest Palindrome

    摘要:題目要求輸入一個字符串,計算用這個字符串中的值構(gòu)成一個最長回數(shù)的長度是多少。直觀來看,我們立刻就能想到統(tǒng)計字符串中每個字符出現(xiàn)的次數(shù),如果該字符出現(xiàn)次數(shù)為偶數(shù),則字符一定存在于回數(shù)中。這個細(xì)節(jié)需要注意。 題目要求 Given a string which consists of lowercase or uppercase letters, find the length of the...

    linkin 評論0 收藏0
  • LeetCode9.回文數(shù) JavaScript

    摘要:回文數(shù)判斷一個整數(shù)是否是回文數(shù)?;匚臄?shù)是指正序從左向右和倒序從右向左讀都是一樣的整數(shù)。示例輸入輸出示例輸入輸出解釋從左向右讀為。因此它不是一個回文數(shù)。 LeetCode9.回文數(shù) JavaScript 判斷一個整數(shù)是否是回文數(shù)?;匚臄?shù)是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數(shù)。 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: false...

    junbaor 評論0 收藏0
  • leetcode5 Longest Palindromic Substring 最長且為回數(shù)的子字符

    摘要:思路二指針最大長度現(xiàn)在我們從回數(shù)的特點(diǎn)入手。因此,假設(shè)當(dāng)前得到的回數(shù)的最大長度為,我們可以判斷或者是不是回數(shù)。假設(shè)此時指針指向,而已知最大回數(shù)子字符串的長度為。 題目要求 Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s i...

    Imfan 評論0 收藏0
  • [LeetCode] 9. Palindrome Number

    Problem Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward. Example 1: Input: 121Output: trueExample 2: Input: -121Output: falseExplana...

    zhaochunqi 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<