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

首頁 > 學院 > 開發設計 > 正文

【華為機試】字符串合并處理

2019-11-08 18:29:34
字體:
來源:轉載
供稿:網友

題目描述

按照指定規則對輸入的字符串進行處理。

詳細描述:

將輸入的兩個字符串合并。

對合并后的字符串進行排序,要求為:下標為奇數的字符和下標為偶數的字符分別從小到大排序。這里的下標意思是字符在字符串中的位置。

對排序后的字符串進行操作,如果字符為‘0’——‘9’或者‘A’——‘F’或者‘a’——‘f’,則對他們所代表的16進制的數進行BIT倒序的操作,并轉換為相應的大寫字符。如字符為‘4’,為0100b,則翻轉后為0010b,也就是2。轉換后的字符為‘2’; 如字符為‘7’,為0111b,則翻轉后為1110b,也就是e。轉換后的字符為大寫‘E’。

舉例:輸入str1為"dec",str2為"fab",合并為“decfab”,分別對“dca”和“efb”進行排序,排序后為“abcedf”,轉換后為“5D37BF”

接口設計及說明:

/*

功能:字符串處理

輸入:兩個字符串,需要異常處理

輸出:合并處理后的字符串,具體要求參考文檔

返回:無

*/

void PRocessString(char* str1,char *str2,char * strOutput)

{

}

輸入描述:

輸入兩個字符串

輸出描述:

輸出轉化后的結果

輸入例子:
dec fab
輸出例子:
5D37BF

解題思路

合并 ——> 排序(隔位劃分奇偶串 -> 分別按ascii從小到大排序 -> 回歸原串 )——> 轉換(只轉換0~9、a~z、A~Z)

AC代碼如下:

#include <iostream>#include <algorithm>using namespace std;//歸并及排序函數string merge_sort( string str ){        string str1,str2;        for( int i = 0; i < str.length(); ++i ){            if( i % 2 == 1 ){                str1.push_back( str[i] );            }else{                str2.push_back( str[i] );            }        }        sort( str1.begin(),str1.end() );        sort( str2.begin(),str2.end() );        for( int i = 0, j = 0, k = 0; i < str.length(); ++i ){            if( i % 2 == 1 ){                str[i] = str1[j++];            }else{                str[i] = str2[k++];            }        }        return str;}//字符轉換函數char bit_reverse( char c ){    switch( c ){        case '0':c = '0';break;        case '1':c = '8';break;        case '2':c = '4';break;        case '3':c = 'C';break;        case '4':c = '2';break;        case '5':c = 'A';break;        case '6':c = '6';break;        case '7':c = 'E';break;        case '8':c = '1';break;        case '9':c = '9';break;        case 'a':        case 'A':c = '5';break;        case 'b':        case 'B':c = 'D';break;        case 'c':        case 'C':c = '3';break;        case 'd':        case 'D':c = 'B';break;        case 'e':        case 'E':c = '7';break;        case 'f':        case 'F':c = 'F';break;        default : break;    }    return c;}int main(){    string str,str2;    while( cin>>str>>str2 ){        str += str2;        str = merge_sort(str);        for( int i = 0; i < str.length(); ++i ){            str[i] = bit_reverse( str[i] );        }        cout<<str<<endl;    }    return 0;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阆中市| 剑阁县| 汉川市| 富阳市| 乐至县| 济阳县| 衡东县| 新宁县| 阜新| 阿拉善右旗| 左贡县| 曲松县| 泗阳县| 加查县| 杭州市| 濉溪县| 本溪市| 东台市| 遂溪县| 五寨县| 察哈| 湖北省| 边坝县| 巴青县| 喜德县| 青田县| 环江| 方山县| 壶关县| 来凤县| 淳安县| 杨浦区| 望江县| 习水县| 盐津县| 荔浦县| 乐清市| 安图县| 高邮市| 土默特右旗| 城市|