Giả sử chúng ta có hai chuỗi s và t. chúng ta phải kiểm tra xem s có phải là quay của t hay không, nói cách khác, chúng ta có thể nhận được t sau khi quay s không?
Vì vậy, nếu đầu vào giống như s ="helloworld" và t ="worldhello", thì đầu ra sẽ là True.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
-
nếu kích thước của s0 không bằng kích thước của s1, thì -
-
trả về false
-
-
s:=s0 nối s0
-
trả về true khi s1 bằng s, ngược lại là 0
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Ví dụ
#include <bits/stdc++.h> using namespace std; class Solution { public: bool solve(string s0, string s1) { if(s0.size() != s1.size()) return false; string s = s0 + s0; return s.find(s1) != string::npos; } }; int main(){ Solution ob; cout << (ob.solve("helloworld", "worldhello")); }
Đầu vào
"helloworld", "worldhello"
Đầu ra
1