CareerCup-1.8
Assume you have a method isSubstring which checks if one word is a substring of another. Given two strings, s1 and s2, write code to check if s2 is a rotation of s1 using only one call to isSubstring (i e , “waterbottle” is a rotation of “erbottlewat”)
这道题没想到这么做,很巧妙
#include <iostream>
using namespace std;
bool isSubstring(char* src, char* tar)
{
return strstr(src, tar)!=NULL;
};
bool isRotation(char* src, char* tar)
{
int len = strlen(src);
if(len != strlen(tar))
return false;
char* newSrc = new char[len * 2 + 1];
strcpy(newSrc, src);
strcpy(newSrc+len, src);
return isSubstring(newSrc, tar);
};
int main()
{
cout<<boolalpha<<isRotation("a1bd12fswfd", "a1bd12fswfd");
system("pause");
};