程序员面试金典 - 面试题 01.09. 字符串轮转

1. 题目

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

示例1:
 输入:s1 = "waterbottle", s2 = "erbottlewat"
 输出:True
 
示例2:
 输入:s1 = "aa", "aba"
 输出:False
 
提示:
字符串长度在[0, 100000]范围内。
说明:
你能只调用一次检查子串的方法吗?

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

2. 解题

  • s1一定在s2+s2中
  • s2一定在s1+s1中
class Solution {
public:
    bool isFlipedString(string s1, string s2) {
    	if(s1.size() != s2.size())
    		return false;
    	// return (s1+s1).find(s2) != string::npos;//也可以
    	return (s2+s2).find(s1) != string::npos;
    }
};

在这里插入图片描述

发布了675 篇原创文章 · 获赞 564 · 访问量 17万+

猜你喜欢

转载自blog.csdn.net/qq_21201267/article/details/104532880