成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

leetcode9 Palindrome Number 回?cái)?shù)

Songlcy / 2294人閱讀

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

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

思路一:雙指針

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

    //雙指針,將左右指針?lè)謩e指向數(shù)字的首位
    public boolean isPalindrome(int x) {
        if(x<0 || (x%10==0&&x!=0)){
            return false;
        }
        int rightPointer = 0;
        //獲得右指針的初始值,即數(shù)組的長(zhǎng)度
        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ù)字的遍歷是一種方法,但是要先通過(guò)一圈遍歷獲得右指針,增加了時(shí)間。所以可以采用從右至左遍歷數(shù)字并按照添加順序有小到大生成新的數(shù)字,判斷最終生成的數(shù)字是否和遍歷結(jié)束的數(shù)字相等。
這里需要考慮一種特殊情況,即當(dāng)末尾為0的情況。若不優(yōu)先考慮該情況,就會(huì)生成錯(cuò)誤的結(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));
    }


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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/66888.html

相關(guān)文章

  • leetcode132. Palindrome Partitioning II

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

    jeyhan 評(píng)論0 收藏0
  • leetcode409.Longest Palindrome

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

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

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

    junbaor 評(píng)論0 收藏0
  • leetcode5 Longest Palindromic Substring 最長(zhǎng)且為回?cái)?shù)的子字符

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

    Imfan 評(píng)論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 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<