2022.0805算法第5题字符串变形
需要按空格将字符串进行翻转,并切换大小写。
字符串操作有许多灵活的函数,包括迭代器的使用。
首先是将全部字符串及逆行大小写转换。
for(int i=0;i<n;i++) { if(s[i]<='z'&&s[i]>='a') res+=s[i]-('a'-'A'); else if (s[i]<='Z'&&s[i]>='A') res+=s[i]+'a'-'A'; else res+=s[i]; }然后对整个字符串进行翻转
reverse(res.begin(), res.end());最后根据空格对子字符串进行二次反转。
for(int i=0;i<n;i++) { int j=i; while(j<n && res[j]!=' ') j++; reverse(res.begin()+i, res.begin()+j); i=j; }主要难点在于空格位置的获取,确定了空格的位置就能获取字符串。