#include<iostream> #include<string> #include<vector> using namespace std; int myleft; int myright; void getshortP(string t, string p){     myleft = -1;     myright = -1;     int curlen = t.length();     vector<int> ch[26];     for (int i = 0; i < t.length(); i++){         ch[t[i] - 'a'].push_back(i);     }     for (int i = 0; i < ch[p[0]-'a'].size(); i++){         int last = ch[p[0] - 'a'][i];         int k;         for (int j = 1; j < p.length(); j++){             k = 0;             int templen = ch[p[j] - 'a'].size();             while (k< ch[p[j] - 'a'].size() && ch[p[j] - 'a'][k] <= last) k++;             if (k == templen) return;             last = ch[p[j] - 'a'][k];         }         if (last - ch[p[0] - 'a'][i] < curlen){ myleft = ch[p[0] - 'a'][i]; myright = last; curlen = myright - myleft; }     }     return; } int main(){     string str, par;     while (cin >> str >> par){         getshortP(str, par);         cout << myleft << " " << myright << endl;     }     return 0; }
点赞 评论

相关推荐

2024-12-23 11:36
中南大学 Java
点赞 评论 收藏
分享
牛客网
牛客企业服务