檢查string是否有重複嘗試用map

2022-07-21 19:30:22 字數 1057 閱讀 4930

題意:輸入一些單詞,找出所有滿足如下條件的單詞:該單詞不能通過字母重排,得到輸入文字的另外乙個單詞。在判斷是否滿足條件時,字母不分大小寫,但在輸出時應保留輸入的大小寫,按字典序排列。

題解:先對輸入的單詞進行小寫化,然後進行排序,如果排序後的字串相同,那麼就剔除。此處建議用map型別 注(map中的int會自動初始化為0)

ac**:第一種:結構體加兩個for迴圈,不建議,**長又複雜度高(n*n)

#include#include#include#include#include#includeusing namespace std;

struct str

;void zu(str &s)

int main()

for(int i=1; i<=k; i++)

}for(int i=1; i<=k; i++)

if(strin[i].flag==0)

vec.push_back(strin[i].s);

sort(vec.begin(),vec.end());

for(vector::iterator it=vec.begin(); it!=vec.end(); it++)

cout<<*it

}

改進後用map統計(複雜度僅為k*n)

#include

#include

#include

#include

#include

using namespace std;

mapm;

vectork;

vectorans;

string zu(string ss)

int main()

for(vector::iterator it=k.begin();it!=k.end();it++)

sort(ans.begin(),ans.end());

for(vector::iterator it=ans.begin();it!=ans.end();it++)

return 0;

}

檢查乙個string裡面是否有重複的字元

sol1 使用two loops迴圈,比如str 1.n 對於第乙個字元,檢查後面的,如果重複,返回false,如果沒有乙個元素和第乙個字元重複,就繼續檢查str 2 一次類推下去。這個辦法的時間複雜度為o n 2 sol2 使用雜湊表,我們將每乙個character hash 到乙個雜湊表中,檢查...

檢查string是否為double

之前寫的方法,使用try catch來處理 如果能捕獲異常就說明問題 public bool checklegal foreach control c in groupbox2.controls catch return flag 第二種方法,使用double的tryparse方法,根據返回值來處理...

檢查乙個列表是否有重複元素

像計算機科學家一樣思考python 第10章練習10 7 編寫乙個名為has duplicates的函式接收乙個列表,當其中任何乙個元素出現多於一次時返回true。它不應當修改原始列表。自己實現的 用while迴圈 def has duplicates t new t sorted t index ...