题目链接:https://leetcode-cn.com/problems/sentence-similarity-iii/
思路:考虑怎么写最少代码最快写完 假定s1是短串 s2是长串
那么就是要满足s1的前缀是s2的前缀,s1的后缀也要是s2的后缀
那么匹配一次前缀匹配一次后缀 用下标i j 记录 当i>j 的时候 说明 长串的前后缀已经覆盖了 短串 即符合题意
可以用stringstream 读取出来单词 更快
1 class Solution { 2 #define pb push_back 3 public: 4 bool areSentencesSimilar(string s1, string s2) { 5 if(s1.size()>s2.size()) swap(s1,s2); 6 stringstream ss1(s1),ss2(s2); 7 string s; 8 vector<string>a,b; 9 while(ss1>>s) a.pb(s); 10 while(ss2>>s) b.pb(s); 11 int i=0,j=a.size()-1; 12 for(int k=0;k<b.size()&&i<a.size();k++) 13 { 14 if(a[i]==b[k]) i++; 15 else break; 16 } 17 for(int k=b.size()-1;k>=0&&j>=0;k--) 18 { 19 if(a[j]==b[k]) j--; 20 else break; 21 } 22 return i>j; 23 } 24 };View Code