字符串
2023-11-02 12:16:46   0  举报             
     
         
 AI智能生成
  字符串总结
    作者其他创作
 大纲/内容
  151.翻转字符串里的单词    
     先整体反转再局部反转    
     reverse(string& s, int start, int end)    
     整体反转  
     局部反转  
     双指针法去空格    
     去除多余空格    
     快指针遇到非空格,s[slow] = s[fast],slow和fast继续移动,知道快指针遇到空格,跳出当前while循环  
     每个单词之间保留空格    
     每次快指针遇到非空格,slow+=1;s[slow]=' ';填充空格,slow大于0时才执行上述代码  
     剑指Offer58-II.左旋转字符串    
     先局部反转再整体反转             
     反转函数reverse(begin,end)  
     理论基础    
     字符串是若干字符组成的有限序列,也可以理解为是一个字符数组    
     在C语言中,把一个字符串存入一个数组时,也把结束符 '\0'存入数组,并以此作为该字符串是否结束的标志。  
     在C++中,提供一个string类,string类会提供 size接口,可以用来判断string类字符串是否结束,就不用'\0'来判断是否结束。  
     vector< char > 和 string区别    
     在基本操作上没有区别,但是 string提供更多的字符串处理的相关接口,例如string 重载了+,而vector却没有。  
     C++库函数,如果题目关键的部分直接用库函数就可以解决,建议不要使用库函数    
     swap()交换  
     reverse()反转  
     .resize()重置字符串大小  
     .erase()删除容器元素  
     344. 反转字符串    
     双指针法,交换元素  
     541. 反转字符串II    
     反转前k个元素    
     reverse(s.begin()+i,s.begin()+i+k)    
     反转这 2k 字符中的前 k 个字符  
     剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,  
     反转剩余元素    
     reverse(s.begin()+i,s.end())  
     122. 路径加密    
     替换.变成空格    
     path[i]=='.'?str+=' ':str+=path[i];  
    
 
 
 
 
  0 条评论
 下一页