牛客题霸 [字符串变形]C++题解/答案
生活随笔
收集整理的這篇文章主要介紹了
牛客题霸 [字符串变形]C++题解/答案
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
牛客題霸 [字符串變形]C++題解/答案
題目:
對于一個給定的字符串,我們需要在線性(也就是O(n))的時間里對它做一些變形。首先這個字符串中包含著一些空格,就像"Hello World"一樣,然后我們要做的是把著個字符串中由空格隔開的單詞反序,同時反轉每個字符的大小寫。比如"Hello World"變形后就變成了"wORLD hELLO"。
題解:
注意翻轉后,單詞內部沒有發生改變,比如Hello World變成World Hello,World和Hello內部沒有發生改變,變的只有次序
所以我們順序讀,每讀到空格,說明這個單詞已經讀完了
將這個單詞存起來,這樣存起來就是倒序
至于大小寫更好判斷,直接if就可以了
代碼:
class Transform { public:string trans(string s, int n) {// write code herestring res="",temp="";for(int i=0;i<n;i++){if(s[i]!=' ')temp+=s[i];else {res=' '+temp+res;temp.clear();}}if(!temp.empty())res=temp+res;for(int i=0;i<n;i++){if(res[i]<='z'&&res[i]>='a')res[i]=toupper(res[i]);//小寫變成大寫else if(res[i]<='Z'&&res[i]>='A')res[i]=tolower(res[i]);//大寫變成小寫}return res;} };總結
以上是生活随笔為你收集整理的牛客题霸 [字符串变形]C++题解/答案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎样在头条发文章不踩坑怎样在头条发文章不
- 下一篇: 牛客题霸 [三个数的最大乘积]C++题解