当前所有算法都使用测试用例运行过,但是不保证100%的测试用例,如果存在问题务必联系批评指正~
在此感谢左大神让我对算法有了新的感悟认识!
原问题
给定字符串str1和str2, str1字符串中的前半段任意长度的子串移动到后面形成的字符串都是str1的旋转词
如下:
str = 12345
旋转词有:12345、23451、34512…
原问题:
1、申请一个字符串 str = str1+str1
2、判断str中是否包含str2,,如果包含,则str1和str2互为旋转词。
原问题:
/*** 二轮测试: 判断是否互为旋转词* @param str1* @param str2* @return*/public static boolean isRotationCp1(String str1, String str2) {if (str1 == null || str2 == null || str1.length() != str2.length()) {return false;}String str3 = str1 + str1;return str3.contains(str2);}
正在学习中
正在学习中
这题解法刚开始做其实想不到,后来从题目中获得了灵感,拼接的结果中必然会存在旋转词的所有情况,这个思路可以记录一下,以后如果遇到旋转类型的题目可以使用该方法,当前contains可以使用kmp算法降低时间复杂度,后面会讲到。
方案和代码仅提供学习和思考使用,切勿随意滥用!如有错误和不合理的地方,务必批评指正~
如果需要git源码可邮件给2260755767@qq.com
再次感谢左大神对我算法的指点迷津!