zoukankan      html  css  js  c++  java
  • 刷题力扣面试题 01.09. 字符串轮转

    题目链接

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/string-rotation-lcci
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    题目描述

    字符串轮转。给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成(比如,waterbottle是erbottlewat旋转后的字符串)。

    示例1:

     输入:s1 = "waterbottle", s2 = "erbottlewat"
     输出:True
    

    示例2:

     输入:s1 = "aa", s2 = "aba"
     输出:False
    

    提示:

    • 字符串长度在[0, 100000]范围内。
      说明:
    • 你能只调用一次检查子串的方法吗?

    题目分析

    1. 根据题目描述,若s2是s1旋转的到,那么s1也可由s2旋转得到
    2. 若在旋转的位置将字符串分为两部分,s1的前半部分对应s2后半部分;s1的后半部分对应s2的前半部分
    3. 当两个s1首尾拼接后就会包含s2

    代码

    class Solution {
    public:
        bool isFlipedString(string s1, string s2) {
            if (s1.length() != s2.length()) { return false; }
            std::string s12 = s1 + s1;
            return s12.find(s2) == std::string::npos ? false : true;
        }
    };
    
  • 相关阅读:
    Fusion access
    组网架构
    DHCP中继
    Vxlan配置
    redis多实例
    ansible实现redis角色
    ansible如何ssh免密链接(基于key验证)
    MySQL主从复制
    MySQL范例
    Ubuntu2004安装
  • 原文地址:https://www.cnblogs.com/HanYG/p/15806321.html
Copyright © 2011-2022 走看看