題意理解
查詢乙個字串中的子串是否是另乙個字元的排列
問題分析
陣列滑動視窗+map
將待匹配的字串轉化成字典來比較,每次滑動字串,只需要修改字典中首尾字元的數量即可。對於數量為0的字元,需要從map中刪除。如果不刪除,無法直接用字典相等來判斷。
其他做了40分鐘,慢了。一遍準。
鏈結
bool checkinclusion(string s1, string s2)
for (auto c : s2.substr(0, len1)) //源字串子串(同長度)轉字典
if (srcdict == destdict) //字典相等
for (int i = len1; i != len2; i ++) //遍歷源字串
cout << endl;
for (auto p : destdict)
cout << endl;
*/if (srcdict == destdict) //兩個字典相等
else
}return false; //出遍歷,說明沒有匹配
}
567 字串的排列
給定兩個字串 s1 和 s2,寫乙個函式來判斷 s2 是否包含 s1 的排列。換句話說,第乙個字串的排列之一是第二個字串的子串。示例1 輸入 s1 ab s2 eidbaooo 輸出 true 解釋 s2 包含 s1 的排列之一 ba 思路 注釋 public boolean checkinclus...
567 字串的排列
給定兩個字串 s1 和 s2,寫乙個函式來判斷 s2 是否包含 s1 的排列。換句話說,第乙個字串的排列之一是第二個字串的子串。示例1 輸入 s1 ab s2 eidbaooo 輸出 true 解釋 s2 包含 s1 的排列之一 ba 示例2 輸入 s1 ab s2 eidboaoo 輸出 fals...
567 字串的排列
給定兩個字串s1和s2,寫乙個函式來判斷s2是否包含s1的排列。換句話說,第乙個字串的排列之一是第二個字串的子串。示例1 輸入 s1 ab s2 eidbaooo 輸出 true解釋 s2 包含 s1 的排列之一 ba 示例2 輸入 s1 ab s2 eidboaoo 輸出 false注意 輸入的字...