CareerCup-1.8
阿新 • • 發佈:2018-12-24
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"); };