substr+双指针+测试样例好像有误
字符串变形
http://www.nowcoder.com/practice/c3120c1c1bc44ad986259c0cf0f0b80e
- 1、转换大小写
- 2、用『双指针』进行获取结果
- 吐槽:但是,这个题目的测试样例,似乎默认是一个空格,没有考虑多个空格的情况
class Solution { public: string trans(string s, int n) { // write code here if( n<=0 ) { return s; } int loop=n; //转换模块 while( loop-- ) { if( islower( s[loop] ) ) { s[loop]=s[loop]-' '; } else if( isupper( s[loop] ) ) { s[loop]=s[loop]+' '; } } //双指针 int Left=n-1; int Right=n; string res; while( Left>=0 ) { //不等于 if( ' '!=s[Left] ) { --Left; } else { if( Right-Left>1 ) { string temp=s.substr( Left+1, Right-Left-1 ); res+=temp; } Right=Left; --Left; res+=' '; } } if( Right-Left>1 ) { string temp=s.substr( Left+1, Right-Left-1 ); res+=temp; } return res; } };
学习牛油的技巧
// 亦或技巧 字符a ^' ' 则大小写随意切换 c^=' ';