最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#算法之回文數(shù)

 更新時間:2022年01月18日 08:30:03   作者:癡者工良  
這篇文章介紹了C#算法之回文數(shù),文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

回文數(shù)

判斷一個整數(shù)是否是回文數(shù)?;匚臄?shù)是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數(shù)。

示例 1:

輸入: 121
輸出: true

示例 2:

輸入: -121
輸出: false
解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是一個回文數(shù)。

示例 3:

輸入: 10
輸出: false
解釋: 從右向左讀, 為 01 。因此它不是一個回文數(shù)。

進階:

你能不將整數(shù)轉(zhuǎn)為字符串來解決這個問題嗎?

代碼模板

public class Solution {
    public bool IsPalindrome(int x) {
        
    }
}

筆者的代碼

運行時間在120ms左右,筆者的思路是:如果一個數(shù)字的反序還是等于這個數(shù),那么這個數(shù)就是回文數(shù)。

以下代碼無法解決反序后可能溢出,可以利用上一題的代碼進行溢出檢查。

當然,一個int類型的數(shù),如果是回文,那么他的反序肯定不會溢出,反之其反序發(fā)生溢出則肯定不是回文數(shù)。

public class Solution
    {
        public bool IsPalindrome(int x)
        {
            if (x < 0) return false;
            int xx = x;
            int num = 0;  //x的反序
            while (xx != 0)    //求反序
            {
                int i = xx % 10;
                xx = xx / 10;
                num = num * 10 + i;
            }
            if (x == num)       //如果x的反序num==x,那么這個數(shù)字是回文數(shù)
                return true;

            else
                return false;

        }
    }

 加try-catch,耗時增加 10~20ms

try { 
            while (xx != 0)
            {
                int i = xx % 10;
                xx = xx / 10;
                num = num * 10 + i;
            }
            }
            catch
            {
                return false;
            }

官方這道題給出了示例代碼,耗時120ms左右,思路是只反序一半,反序后的原始數(shù)、反序一半的數(shù)進行比較,也就不用檢查溢出。

public class Solution {
    public bool IsPalindrome(int x) {
        // 特殊情況:
        // 如上所述,當 x < 0 時,x 不是回文數(shù)。
        // 同樣地,如果數(shù)字的最后一位是 0,為了使該數(shù)字為回文,
        // 則其第一位數(shù)字也應(yīng)該是 0
        // 只有 0 滿足這一屬性
        if(x < 0 || (x % 10 == 0 && x != 0)) {
            return false;
        }

        int revertedNumber = 0;
        while(x > revertedNumber) {
            revertedNumber = revertedNumber * 10 + x % 10;
            x /= 10;
        }

        // 當數(shù)字長度為奇數(shù)時,我們可以通過 revertedNumber/10 去除處于中位的數(shù)字。
        // 例如,當輸入為 12321 時,在 while 循環(huán)的末尾我們可以得到 x = 12,revertedNumber = 123,
        // 由于處于中位的數(shù)字不影響回文(它總是與自己相等),所以我們可以簡單地將其去除。
        return x == revertedNumber || x == revertedNumber/10;
    }
}

別人用字符串方式進行判斷(雖然題目說不能用string),耗時150-180ms,不太穩(wěn)定

public class Solution
    {
        public bool IsPalindrome(int x)
        {
            string str = x.ToString();
            for (int i = 0; i < str.Length / 2; ++i)
            {
                if (str[i] != str[str.Length - 1 - i])
                {
                    return false;
                }
            }
            return true;
        }
    }

到此這篇關(guān)于C#算法之回文數(shù)的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C#操作INI文件的方法詳解

    C#操作INI文件的方法詳解

    INI文件全稱是Initialization File的縮寫,即初始化文件,是windows系統(tǒng)的系統(tǒng)配置文件所采用的存儲格式,統(tǒng)管windows的各項配置。本文介紹了C#操作INI文件的方法,需要的可以參考一下
    2022-10-10
  • 關(guān)于C#基礎(chǔ)知識回顧--反射(一)

    關(guān)于C#基礎(chǔ)知識回顧--反射(一)

    其實說白了,反射就是能知道我們未知類型的類型信息這么一個東西.沒什么神秘可講!反射的核心是System.Type。System.Type包含了很多屬性和方法,使用這些屬性和方法可以在運行時得到類型信息
    2013-07-07
  • C#實現(xiàn)線程池的簡單示例

    C#實現(xiàn)線程池的簡單示例

    這篇文章主要介紹了C#實現(xiàn)線程池的簡單示例,代碼簡潔易懂,有助于初學的朋友更好的理解C# 的線程池,需要的朋友可以參考下
    2014-07-07
  • C#獲取文件夾下所有的文件

    C#獲取文件夾下所有的文件

    這篇文章主要為大家詳細介紹了C#中獲取文件夾下所有的文件的多種方法,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-10-10
  • C#提取PDF表單數(shù)據(jù)的實現(xiàn)流程

    C#提取PDF表單數(shù)據(jù)的實現(xiàn)流程

    PDF表單是一種常見的數(shù)據(jù)收集工具,廣泛應(yīng)用于調(diào)查問卷、業(yè)務(wù)合同等場景,憑借出色的跨平臺兼容性和標準化特點,PDF表單在各行各業(yè)中得到了廣泛應(yīng)用,本文將探討如何使用C# 實現(xiàn)自動化PDF表單數(shù)據(jù)提取流程,需要的朋友可以參考下
    2025-01-01
  • C#使用iTextSharp封裝的PDF文件操作類實例

    C#使用iTextSharp封裝的PDF文件操作類實例

    這篇文章主要介紹了C#使用iTextSharp封裝的PDF文件操作類,實例分析了C#操作pdf文件的技巧,非常具有實用價值,需要的朋友可以參考下
    2015-03-03
  • C#中分部方法和分部類分析

    C#中分部方法和分部類分析

    這篇文章主要介紹了C#中分部方法和分部類基本用法,并且較為詳細的分析了分部方法和分部類使用時的注意事項,需要的朋友可以參考下
    2014-11-11
  • Unity?UGUI的CanvasScaler畫布縮放器組件介紹使用

    Unity?UGUI的CanvasScaler畫布縮放器組件介紹使用

    這篇文章主要為大家介紹了Unity?UGUI的CanvasScaler畫布縮放器組件介紹使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • 利用C#操作WMI指南

    利用C#操作WMI指南

    WMI提供了一套內(nèi)置在Microsoft Windows操作系統(tǒng)中的豐富的系統(tǒng)管理服務(wù),可以在有大量的應(yīng)用程序、服務(wù)和設(shè)備的系統(tǒng)中提供全方位的管理功能。它允許應(yīng)用程序的開發(fā)者,使用簡單的、一致的機制,去查詢企業(yè)中的任一臺計算機上的信息,或是進行系統(tǒng)配置
    2016-11-11
  • c#與WMI使用技巧集

    c#與WMI使用技巧集

    c#與WMI使用技巧集...
    2007-03-03

最新評論

珠海市| 辽宁省| 浙江省| 百色市| 日喀则市| 平顶山市| 广州市| 大悟县| 嘉义县| 灵丘县| 乳源| 阿图什市| 永济市| 且末县| 永德县| 湖口县| 环江| 余江县| 吉木萨尔县| 高要市| 电白县| 萍乡市| 沭阳县| 志丹县| 三河市| 兴宁市| 柏乡县| 麟游县| 大庆市| 沁阳市| 特克斯县| 江源县| 获嘉县| 营山县| 大理市| 新绛县| 乾安县| 定远县| 浪卡子县| 白沙| 承德市|