• leetcode 344. Reverse String 、541. Reverse String II 、796. Rotate String


    344. Reverse String

    最基础的旋转字符串

    class Solution {
    public:
        void reverseString(vector<char>& s) {
            if(s.empty())
                return;
            int start = 0;
            int end = s.size() - 1;
            while(start < end){
                char tmp = s[end];
                s[end] = s[start];
                s[start] = tmp;
                start++;
                end--;
            }
            return;
        }
    };

    541. Reverse String II

    旋转k个字符,然后间隔k个字符不旋转,再旋转k个字符。z

    注意:一般最后都会剩下几个不够k个的字符,如果这些字符的前一次字符进行了旋转,就不旋转;如果前一次没有进行旋转,就需要旋转。其实就是奇数次旋转,偶数次不旋转

    class Solution {
    public:
        string reverseStr(string s, int k) {
            if(s.empty())
                return "";
            int m = s.size()/k;
            int i = 0;
            for(;i < m;i++){
                if(i % 2 == 0)
                    reverse(s,i*k,(i+1)*k - 1);
            }
            if(i % 2 == 0)
                reverse(s,i*k,s.size()-1);
            return s;
        }
        void reverse(string& s,int start,int end){
            while(start < end){
                char tmp = s[end];
                s[end] = s[start];
                s[start] = tmp;
                start++;
                end--;
            }
            return;
        }
    };

     796. Rotate String

     暴力方法就是将A每个位置就行旋转然后和B进行比较判断

    本方法:如果A、B个数相等,如果(A+A)中包含B的话,说明A一定能通过偏移得到B

    class Solution {
    public:
        bool rotateString(string A, string B) {
             return A.size() == B.size() && (A + A).find(B) != string::npos;
        }
    };

    http://www.cnblogs.com/grandyang/p/9251578.html

    string的find函数找不到返回的是npos,不是true、false,也不是-1

    https://blog.csdn.net/qq_33933704/article/details/79188028

  • 相关阅读:
    保持URL不变和数字验证
    centOS ftp key?
    本地环境测试二级域名
    linux 解决You don't have permission to access 问题
    php smarty section loop
    php header Cannot modify header information headers already sent by ... 解决办法
    linux部分命令
    Linux 里面的文件操作权限说明
    用IT网络和安全专业人士视角来裁剪云的定义
    SQL Server 2008 R2炫酷报表"智"作有方
  • 原文地址:https://www.cnblogs.com/ymjyqsx/p/10730728.html
Copyright © 2020-2023  润新知