686.Repeated String Match
class Solution {
public:
int repeatedStringMatch(string A, string B) {
int t= B.size()/A.size()+1;
string tmp=A;
while(t--)
{
tmp+=A;
}
size_t start= tmp.find(B);
if(start ==string::npos) return -1;
int end=start+B.size()-1;
if(end == start) return 1;
// cout<<start<<" "<< end << endl;
start = start/A.size() *A.size();
end = ((end+1)/A.size()+((end+1)%A.size() !=0) ) *A.size();
// cout<<start<<" "<< end << endl;
return (end-start)/A.size();
}
};Last updated