字串的排列

2021-09-02 15:30:29 字數 827 閱讀 2763

給定兩個字串 s1 和 s2,寫乙個函式來判斷 s2 是否包含 s1 的排列。

換句話說,第乙個字串的排列之一是第二個字串的子串。

輸入: s1 = 「ab」 s2 = 「eidbaooo」

輸出: true

解釋: s2 包含 s1 的排列之一 (「ba」).

輸入: s1= 「ab」 s2 = 「eidboaoo」

輸出: false

輸入的字串只包含小寫字母

兩個字串的長度都在 [1, 10,000] 之間

方法一對字串進行排序,然後比較兩個字串是否相等

方法二使用陣列儲存字元的個數,然後移動滑動視窗對兩個陣列進行比較

//

// created by hints on 2018/12/4.

//#include #include #include #include using namespace std;

//通過字串排序,然後進行比較

//結果:超出時間限制

bool checkinclusion1(string s1, string s2)

}return false;

}//通過滑動視窗解決問題

bool matches(vector&c1, vector&c2)

return true;

}bool checkinclusion(string s1, string s2)

for(int i = 0; i <= l2-l1; ++i)

return matches(c1, c2);

}int main()

字串排列

在網上看到了乙個操作字串的題目,該題為 字串排列。大概意思是列出字串中所有字元的所有組合並且輸出無重複。自己做了一下,這裡分享該題的思路,和做法。自我覺得實現的有些麻煩 歡迎指點。問題輸入乙個字串,列印出該字串中字元的所有排列。輸入 字串abc。輸出 列印出由字元a,b,c所能排列出來的所有字串ab...

字串排列

輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。第一種方法 字串拼接 function permutate str else return result console.log pe...

字串的排列

題目 輸入乙個字串,列印出該字串中字元的所有排列。例如輸入字串 abc,則輸出由字元a b c所能排列出來的所有字串 abc acb bac bca cab和 cba。分析 這是一道很好的考查對遞迴理解的程式設計題,因此在過去一年中頻繁出現在各大公司的面試 筆試題中。我們以三個字元 abc為例來分析...