567 字串的排列

2021-09-24 12:14:13 字數 597 閱讀 9727

題意理解

查詢乙個字串中的子串是否是另乙個字元的排列

問題分析

陣列滑動視窗+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注意 輸入的字...