C ++程序 检查两个字符串是否是彼此的旋转体 – 2
给定两个字符串s1和s2,检查s2是否是s1的旋转。
示例:
输入:ABACD,CDABA
输出:True
输入:GEEKS,EKSGE
输出:True
我们在早期发布中讨论了一种处理子字符串匹配作为模式的方法。在本帖中,我们将使用 KMP算法的lps (也是后缀最长前缀)构造,它将有助于找到字符串b的前缀和字符串a的后缀最长匹配。从这个点,我们将知道 旋转点 ,从这个点开始匹配字符。如果所有字符都匹配,则是旋转,否则不是。
下面是上述方法的基本实现。
输出:
时间复杂度: O(n)
辅助空间: O(n)