国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

華為機(jī)試在線訓(xùn)練-??途W(wǎng)(16)字符串排序

2019-11-10 17:09:58
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

題目描述

編寫一個(gè)程序,將輸入字符串中的字符按如下規(guī)則排序。

規(guī)則1:英文字母從A到Z排列,不區(qū)分大小寫。

      如,輸入:Type 輸出:epTy

規(guī)則2:同一個(gè)英文字母的大小寫同時(shí)存在時(shí),按照輸入順序排列。

    如,輸入:BabA 輸出:aABb

規(guī)則3:非英文字母的其它字符保持原來(lái)的位置。

    如,輸入:By?e 輸出:Be?y

樣例:

    輸入:

   A Famous Saying: Much Ado About Nothing(2012/8).

    輸出:

   A aaAAbc dFgghh: iimM nNn oooos Sttuuuy (2012/8).

輸入描述:

輸出描述:

輸入例子:
A Famous Saying: Much Ado About Nothing (2012/8).
輸出例子:
A aaAAbc dFgghh: iimM nNn oooos Sttuuuy (2012/8).

這是一道純字符處理問(wèn)題,難點(diǎn)在大小寫不區(qū)分排序,默認(rèn)的ASCII碼排序是區(qū)分大小寫的,而且相差32,直接排序會(huì)使所有小寫字母都排在后面。

而此題要保證:

(1)小寫字母和大寫字母不區(qū)分,而且保持原來(lái)輸入順序!

(2)非英文字母保持原樣輸出

關(guān)鍵問(wèn)題在于如何保證大小寫字母不區(qū)分且保持原來(lái)順序,目前能想到的辦法是從a到z依次去string中找,找到一個(gè)字母就添加進(jìn)來(lái):

        for(int i=0;i<26;i++){            for(auto c:str_sort){//str_sort為待排字符串                if(c=='a'+i||c=='A'+i)                    str_temp+=c;//str_temp為排序后的字符串,字母大小寫不區(qū)分且保持原序            }        }對(duì)于第二個(gè)問(wèn)題,可以拷貝一份string副本,非字母字符保持不變,字母字符以'0'替換,將經(jīng)過(guò)上述方法排序過(guò)的string替換掉該副本的所有'0'字符即可。

完整AC后的代碼:

#include <iostream>#include <string>using namespace std;int main(){    string inStr;    while(getline(cin,inStr)){        string str_temp,str_sort,str_res;        str_res=inStr;        for(auto &e:str_res){            if((e>='a'&&e<='z')||(e>='A'&&e<='Z')){                str_sort+=e;                e='0';            }        }        for(int i=0;i<26;i++){            for(auto c:str_sort){                if(c=='a'+i||c=='A'+i)                    str_temp+=c;            }        }        int i=0;        for(auto &e:str_res){            if(e=='0'){               e=str_temp[i];               i++;            }        }        cout<<str_res<<endl;;    }    return 0;}


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 天长市| 如东县| 通榆县| 岳阳市| 普兰县| 延川县| 康定县| 文昌市| 漳浦县| 舟曲县| 凤山县| 兰西县| 富宁县| 辽阳县| 平舆县| 修文县| 苏尼特左旗| 阜城县| 南岸区| 贡觉县| 许昌县| 郑州市| 南城县| 张家港市| 日照市| 千阳县| 大方县| 安义县| 繁峙县| 曲松县| 富锦市| 长沙县| 肥乡县| 三门县| 海口市| 孟连| 邯郸市| 富民县| 淳安县| 合作市| 青神县|