小明的工作是對一串英語字元進行特殊的翻譯:當出現連續且相同的小寫字母時,須替換成該字母的大寫形式,在大寫字母的後面緊跟該小寫字母此次連續出現的個數;與此同時,把連續的小寫字母串的左側和右側的字串交換位置;重複該操作,直至沒有出現連續相同的小寫字母為止。現在小明想請你幫他完成這種特殊的翻譯。
輸入一串由小寫字母構成的字串。(字串長度不大於250)
輸出翻譯後的字串
lodnkmgggggggoplerre
eg7lodnkmr2ople
1.在讀入的字串中查詢相同且連續的小寫字母,並記錄個數由於這裡如果運用字元陣列來模擬會比較繁瑣,所以我採用了c++的sting型別,通過運用其中的成員函式來降低模擬難度。2.將連續的小寫字母替換成單個對應的大寫字母
3.將統計的個數轉化成字元型
4.求出相同字元前後子串並交換
5.重複以上步驟直到字串不再發生變化為止。
(1)重複個數整型轉化為字元型
(2)字串處理
(3)完整**
#include#include#includeusing namespace std;
void sovle(unsigned char *a,int sum)
else
else a[0]=t+48;
} }string ans(string s1)
if(sum>1)
if(sum>1) return s1;
}return s1;
}int main()
cout這題在解題過程中還是遇到不少問題,比如在沒有限定條件之前,連續的數字也會被錯判成連續的字母並處理;還有就是由於處理並調換子串的時候,字元的位置和長度會發生改變,所以字元替換的次序上一不小心就會出錯。通過這道題,我學習鞏固了c++ string類的相關知識,了解到了更多有關string類的用法,還是收穫良多的。
string是特殊的引用型別,特殊在何處
對於string這個引用型別是非常特殊乙個引用型別。它有兩點特殊的地方。第一點物件分配的特殊。例如 string str1 abcd string str2 abcd 那麼.net在分配string型別的時候,先檢視當前string型別列表是否有相同的,如果有的話,直接返回其的引用,否則重新分配。第...
String 類的實現(3)String類常用函式
1 2 include3 include4 include5 include 6 using namespace std 自己模擬實現的部分相關c string庫函式 8int my strlen const char p 9 17return count 18 19char my strcopy ...
Kotlin的特殊類
一 資料類 1.1 使用 我們經常建立一些資料類來儲存乙個物件的屬性和狀態,在這些類中一些標準的get set函式都是機械推導出來的,在kotlin中這些類被標記為資料類,使用關鍵字data宣告 data class user val name string,var age int 編譯器自動從資料...