程式設計題 字串合併處理

2021-07-25 10:02:56 字數 1483 閱讀 7870

talk is cheap, show me the code.

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

詳細描述:

將輸入的兩個字串合併。

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

對排序後的字串進行操作,如果字元為『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

這個題目純粹地處理字串,不過比較綜合,字串的常用變換方法都涉及到了,如果每一步都採用原始的方式將會很麻煩,採用查表法實現位反轉是最好的方式。

#include #include #include #include #include using namespace std;

string processstring(string str1, string str2)

else

}sort(s1.begin(), s1.end());

sort(s2.begin(), s2.end());

s.clear();

int p = 0;

while (p < s1.size())

if (p < s2.size())

s += s2[p];

for (int i = 0; i < s.size(); i++)

else if (s[i] >= 'a' && s[i] <= 'f')

}return s;

}int main()

return 0;

}

華為筆試題 字串合併處理

按照指定規則對輸入的字串進行處理。詳細描述 將輸入的兩個字串合併。對合併後的字串進行排序,要求為 下標為奇數的字元和下標為偶數的字元分別從小到大排序。這裡的下標意思是字元在字串中的位置。對排序後的字串進行操作,如果字元為 0 9 或者 a f 或者 a f 則對他們所代表的16進製制的數進行bit倒...

字串合併處理

while true try dic 0 1 2 3 4 5 6 7 8 9 a b c d e f s input replace s是輸入的合併後的字串 ss ss為最終返回的字串 odd,even 字串的奇數子串和偶數子串 經過下面的迴圈,提取奇數與偶數的子串。for i,v in enume...

華為OJ(字串合併處理)

描述 按照指定規則對輸入的字串進行處理。詳細描述 將輸入的兩個字串合併。對合併後的字串進行排序,要求為 下標為奇數的字元和下標為偶數的字元分別從小到大排序。這裡的下標意思是字元在字串中的位置。對排訓後的字串進行操作,如果字元為 0 9 或者 a f 或者 a f 則對他們所代表的16進製制的數進行b...