zoukankan      html  css  js  c++  java
  • 快手一面:牛客:字符串左移

    首先是一个简单的字符串反转算法:reserve(char* str,int start,int end);

    然后是字符串左移:牛客:JZ43 左旋转字符串,在O(1)的空间复杂度下完成。

    第一次面试写算法,还是太年轻了,没注意到第二题要利用第一题。。。

     1 class Solution {
     2 public:
     3     void reverse(string& str,int start,int end){
     4         for(int i=start;i<(end+start+1)/2;++i){
     5             char tmp=str[i];
     6             str[i]=str[start+end-i];
     7             str[start+end-i]=tmp;
     8         }
     9     }
    10     
    11     string LeftRotateString(string str, int n) {
    12         // 在O(1)的空间复杂度下左旋
    13         // 1,反转前n个;2,反转后面的;3,反转整个字符串
    14         reverse(str,0,n-1);
    15         reverse(str,n,str.size()-1);
    16         reverse(str,0,str.size()-1);
    17         return str;
    18     }
    19 };

    总结:感觉这题是否能做出来不是最重要的,而是考验思维逻辑对不对,多做题,多发散。

    还有字符串反转,不要考虑太复杂了,本来很简单,把它当作一个独立的功能就行。

    心之所愿,永不相忘
  • 相关阅读:
    23.课程应用接口
    22.课程页面设计
    21.手机接口
    20.云通讯
    19.JWT
    18.权限认证
    解决github下载慢的终极方法
    vs code 配置c/c++环境
    Python 字符编码处理总结
    Python编码
  • 原文地址:https://www.cnblogs.com/zgll/p/15310012.html
Copyright © 2011-2022 走看看