反转子串 牛客网 程序员面试金典 C++ Python
题目描述
假定我们都知道非常高效的算法来检查一个单词是否为其他字符串的子串。请将这个算法编写成一个函数,给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成,要求只能调用一次检查子串的函数。
给定两个字符串s1,s2,请返回bool值代表s2是否由s1旋转而成。字符串中字符为英文字母和空格,区分大小写,字符串长度小于等于1000。
测试样例:
"Hello world","worldhello "
返回:false
"waterbottle","erbottlewat"
返回:true
C++
Python
class ReverseEqual: #run:40ms memory:5728k def checkReverseEqual(self, stringA, stringB): if("" == stringA and "" == stringB): return True sizeA = len(stringA) sizeB = len(stringB) if(sizeA != sizeB): return False lt=[0] * 256 for i in range(0,sizeA): lt[ord(stringA[i])] +=1 lt[ord(stringB[i])] -=1 for i in range(0,256): if lt[i] != 0: return False return True
转载于:https://www.cnblogs.com/vercont/p/10210304.html
相关资源:JAVA上百实例源码以及开源项目