面试题:检查一个字符串是否是另一个字符串的旋转 [已关闭]
我的一个朋友今天在软件开发人员职位的面试中被问到以下问题:
给定两个字符串,您将如何检查是否是的旋转版本?s1
s2
s1
s2
例:
如果以下是它的一些旋转版本:s1 = "stackoverflow"
"tackoverflows"
"ackoverflowst"
"overflowstack"
其中 as 不是旋转版本。"stackoverflwo"
他给出的答案是:
获取并找到最长的前缀,该前缀是 的子字符串,它将为您提供旋转点。一旦你找到那个点,在那个点上休息得到和,然后只要检查是否
s2
s1
s2
s2a
s2b
concatenate(s2a,s2b) == s1
这对我和我的朋友来说似乎是一个很好的解决方案。但面试官不这么认为。他要求一个更简单的解决方案。请帮助我,告诉我你会如何做到这一点?Java/C/C++
提前致谢。