黄色国产视频,男女啪啪18禁无遮挡激烈,久草热8精品视频在线观看,四虎国产精品永久在线下载

            一道.NET程序員面試題的遐想

            時(shí)間:2022-07-13 14:41:20 面試 我要投稿
            • 相關(guān)推薦

            關(guān)于一道.NET程序員面試題的遐想

            前幾天,同學(xué)問了我一道程序員的面試題,題目是 “統(tǒng)計(jì)用戶輸入的一串?dāng)?shù)字中每個(gè)數(shù)字出現(xiàn)的次數(shù)”。

            關(guān)于一道.NET程序員面試題的遐想

            當(dāng)時(shí)看到這個(gè)題目,我的第一想法就是:

            1.先判斷用戶輸入的是否是數(shù)字,用if-else語句來判斷;

            2.將用戶輸入的數(shù)字字符串轉(zhuǎn)換成char數(shù)組;

            3.用for循環(huán)遍歷每個(gè)字符,根據(jù)switch-case語句來逐一判斷。

            4.再建立一個(gè)int數(shù)組來接收判斷后的結(jié)果,最后for循環(huán)輸出。

            該方法的解題代碼如下:

            View Code

            classprogram

            {

            staticvoidMain(string[]args)

            {

            //計(jì)算用戶輸入的一串?dāng)?shù)字中每個(gè)數(shù)字出現(xiàn)的次數(shù)

            Console.WriteLine("請輸入一串?dāng)?shù)字");

            stringstr=Console.ReadLine();

            //將字符串轉(zhuǎn)換為字符數(shù)組

            char[]chnum=str.ToCharArray();

            #region判斷用戶輸入的是否是數(shù)字

            for(inti=0;i

            {//判斷每一個(gè)字符是否是數(shù)字通過char的方法來判斷

            if(!char.IsNumber(chnum[i]))

            {

            Console.WriteLine("您的輸入有誤,請輸入數(shù)字");

            Console.ReadKey();

            return;

            }

            }

            #endregion

            //定義一個(gè)新的數(shù)組來保存計(jì)數(shù)

            int[]count=newint[9];

            #regionfor循環(huán)遍歷

            //for循環(huán)遍歷

            for(inti=0;i{

            switch(chnum[i])

            {

            case1:

            count[0]++;

            break;

            case2:

            count[1]++;

            break;

            case3:

            count[2]++;

            break;

            case4:

            count[3]++;

            break;

            case5:

            count[4]++;

            break;

            case6:

            count[5]++;

            break;

            case7:

            count[6]++;

            break;

            case8:

            count[7]++;

            break;

            case9:

            count[8]++;

            break;

            }

            }

            #endregion

            #region循環(huán)輸出

            for(inti=0;i{

            Console.WriteLine("含有的數(shù)字{0}的個(gè)數(shù)是:{1}",i+1,count[i]);

            }

            #endregion

            Console.ReadKey();

            }

            }

            運(yùn)行效果如下:

            不過,這種方法有兩個(gè)缺點(diǎn)就是,如果用戶輸入的不是數(shù)字(如字母或符號(hào)等),程序會(huì)提示錯(cuò)誤,并退出;再者,也會(huì)統(tǒng)計(jì)出用戶沒有輸入過的數(shù)字的個(gè)數(shù)為0個(gè),如果某些時(shí)候不想知道沒有輸入的數(shù)字的個(gè)數(shù),這種解法很不合適,而且代碼修改起來也很復(fù)雜。

            新解法: 泛型集合

            碰巧這幾天接觸了泛型集合,沒想到用Dictionary來解這道題是那么的簡單。

            代碼如下:

            View Code

            classprogram

            {

            staticvoidMain(string[]args)

            {

            Console.WriteLine("請輸入數(shù)字");

            stringnumbers=Console.ReadLine();

            //創(chuàng)建集合鍵為數(shù)字char類型值為每個(gè)數(shù)字出現(xiàn)的次數(shù)int類型

            Dictionarydict=newDictionary();

            //將數(shù)字字符串轉(zhuǎn)換為單個(gè)字符數(shù)組

            char[]chs=numbers.ToCharArray();

            for(inti=0;i{

            //判斷是否是數(shù)字用到char的isnumber方法

            if(char.IsNumber(chs[i]))

            {

            //如果鍵中已含有該數(shù)字,則將其對(duì)應(yīng)的值+1,否則不存在,加入鍵中值為1

            if(!dict.ContainsKey(chs[i]))

            {

            //將每個(gè)數(shù)字字符作為鍵存入鍵值對(duì)中,值初始為1

            dict.Add(chs[i],1);

            }

            else

            {

            //值+1

            dict[chs[i]]++;

            }

            }

            }

            //循環(huán)遍歷鍵值對(duì)輸出

            foreach(KeyValuepairitemindict)

            {

            Console.WriteLine("數(shù)字:{0}出現(xiàn)了{(lán)1}次。",item.Key,item.Value);

            }

            Console.ReadKey();

            復(fù)制代碼

            可見,簡單的幾行代碼就解決了。

            而且,這種解法完全解決了上面遇到的兩個(gè)問題。

            我覺得這個(gè)應(yīng)該就是面試官想要的效果吧。(汗。。。不知道我那位同學(xué)的面試情況怎么樣。。。)

            寫到這里,我又想到了見過的另一道面試題:“計(jì)算字符串中每種字符出現(xiàn)的次數(shù)”。

            這要用我開始想到的那種思路來解得話,我豈不是要寫26個(gè)case語句來判斷嗎,汗。。。。不知道面試官要是看到這么多代碼豈不是會(huì)當(dāng)場走人。。。顯然這不是最好的解題辦法。

            還是用泛型集合來解:

            View Code

            classprogram

            {

            staticvoidMain(string[]args)

            {

            //計(jì)算字符串中每種字符出現(xiàn)的次數(shù)(面試題)。

            //“WelcometoChina,beijing”,

            //不區(qū)分大小寫,打印“W2”“e2”“o3”……

            /*思路:1將字符串都轉(zhuǎn)換為小寫形式,否則大小寫會(huì)算各一個(gè)

            *2以字符為鍵每個(gè)字符出現(xiàn)的次數(shù)為值建立Dictionary泛型集合

            *3將字符串轉(zhuǎn)換為字符數(shù)組

            *4循環(huán)遍歷每個(gè)字符,加入集合中作為鍵,其對(duì)應(yīng)的值初始為1

            *5在加入鍵之前做一個(gè)判斷,由于集合中的鍵不能重復(fù),所以判斷如果鍵中已經(jīng)還有該字符

            *則不再加入該鍵,只把他的值+1

            *6去除字符串中的空格char.isLetter()如果是字母,進(jìn)行操作5

            *7總結(jié):主要是泛型集合的應(yīng)用

            */

            //例句:

            //stringsentences="WelcometoChina,beijing";

            Console.WriteLine("請輸入一段字母");

            stringsentences=Console.ReadLine();

            //將字符串都轉(zhuǎn)換為小寫形式

            sentences=sentences.ToLower();

            //建立泛型集合

            Dictionarydict=newDictionary();

            //將字符串變成字符數(shù)組

            char[]chs=sentences.ToCharArray();

            //遍歷每一個(gè)字符

            for(inti=0;i{

            //通過char的方法判斷是否為字母,如果為字母,則進(jìn)行下面的操作,

            //否則不操作

            if(char.IsLetter(chs[i]))

            {

            //如果不包含該鍵,則加入集合中

            if(!dict.ContainsKey(chs[i]))

            {

            //將每個(gè)字符加入集合中對(duì)應(yīng)鍵,其值初始為1

            dict.Add(chs[i],1);

            }

            else

            {

            //否則,包含該鍵,只將其對(duì)應(yīng)的值+1即可值的類型為int

            //dict[chs[i]]=dict[chs[i]]+1;

            dict[chs[i]]++;

            }

            }

            }

            //循環(huán)遍歷輸出集合中的鍵值

            foreach(KeyValuepairkvindict)

            {

            Console.WriteLine("字母:{0}出現(xiàn)了{(lán)1}次。",kv.Key,kv.Value);

            }

            Console.ReadKey();

            }

            }

            同樣,代碼很簡單:

            這時(shí),我又突發(fā)奇想想到了另一種情況:

            用戶輸入一串字母和數(shù)字的混合字符串如“ddeieiei4954jjfjdji383ddjeuut3003k”

            統(tǒng)計(jì)出每個(gè)數(shù)字或字母出現(xiàn)的次數(shù),且數(shù)字在前,字母在后 ,數(shù)字和字母內(nèi)沒有順序要求

            如 數(shù)字 4 出現(xiàn)了 2次

            數(shù)字 3 出現(xiàn)了 4次

            .......

            ........

            字母 d 出現(xiàn)了 5次

            ...........

            當(dāng)然,最簡單的還是用泛型集合來解了。。。。

            最后來個(gè)總結(jié)吧:

            個(gè)人認(rèn)為,遇到一個(gè)新的問題的時(shí)候,關(guān)鍵是思路,把思路一步一步理順了,就像我們老師說的那樣,知道你要干什么,想好怎樣去做,最后再去寫代碼。不要一上來就敲代碼,思路都沒搞清楚呢,最后肯定是問題多多。

            希望這篇文章可以給像我這樣正在找工作的應(yīng)屆生一些小小的幫助吧!

            (突然覺得在大學(xué)里學(xué)的那些知識(shí)都太簡單了,而且太深了也不講。找工作時(shí)真的很無奈啊!!!)


            【一道.NET程序員面試題的遐想】相關(guān)文章:

            2011最新asp.net面試題與答案07-11

            一道騰訊的面試題07-09

            程序員面試題精選07-12

            一道Java面試題,題目如下07-11

            女本 計(jì)算機(jī)專業(yè)想做net程序員難不難?07-10

            入門級(jí)PHP程序員面試題07-09

            一道很不錯(cuò)的人力資源面試題07-11

            誰有近幾年華為和中興公司的Java程序員面試題07-11

            WAP網(wǎng)絡(luò)與NET網(wǎng)絡(luò)的區(qū)別于定義!07-10

            京東為什么在用.net07-11

            主站蜘蛛池模板: 天天躁日日躁很很躁2022| 国产好爽…又高潮了毛片| 日韩精品中字| 最新日韩一区| 日韩欧美精品有码在线洗濯屋| 国产精品爽爽久久久久久蜜臀| 欧美伦理大全| 天堂资源中文最新版在线一区| 黄色大片在线免费观看| 在线激情网址| 免费啪啪网| 制服丝袜av无码专区完整版| 国产成人免费爽爽爽视频| 青青伊人精品| 日韩性在线| 国产精品视频亚洲二区| 欧美激情综合亚洲一二区| 草草影院在线视频| 日韩欧美一区二区在线观看| 亚洲精品久久酒店| 欧美日韩精品无码一本二本三本色 | 亚洲欧美色国产综合| 精品人妻无码一区二区色欲产成人 | 国产精品免费一区二区区| 一级真人免费毛片| 亚洲 欧美 日韩 综合aⅴ电影| 公么大龟弄得我好舒服秀婷视频| 免费观看国产视频在线| a在线天堂| 色老板精品凹凸在线视频观看| 让少妇爽到高潮视频| 五十路熟妇高熟无码视频| 免费aaa毛片| 中文字幕嫩草| 久久99精品久久久| 极品美女aⅴ在线观看| 欧美日韩久久久精品a片| 精品视频在线看| 亚洲一区欧美一区| 亚洲国产999| 精品日产a一卡2卡三卡4卡乱|