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 };

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

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

    心之所愿,永不相忘
  • 相关阅读:
    python:dataclass装饰器详
    python : tuple 相加,注意逗号
    python itertools chain()
    Python classmethod 修饰符
    ILMerge
    a标签点击后页面显示个false
    Visual Studio自动生成XML类和JSON类
    元组简单示例
    jQuery插件示例笔记
    jQuery中的Ajax全局事件
  • 原文地址:https://www.cnblogs.com/zgll/p/15310012.html
Copyright © 2011-2022 走看看