亂序字串演算法

2021-07-15 22:11:49 字數 2158 閱讀 8624

蠻力法

思路等會睡醒之後寫吧

#include "string"

#include "algorithm"

#include "stdio.h"

#include "iostream"

#include "vector"

using

namespace

std;

bool isanagram(string source, string target) ;

if(source.size()!=target.size())

return

false;

for(i=0;ifor(i=0;iif(lettercount[target[i]]!=0)//判斷為0即可

return

false;

}return

true;

}vector

anagrams(vector

&strs) ;

int i,j;

vector

ans;

for( i=0;iif(mark[i])

continue;

else

ans.push_back(strs[i]);

int flag=0;

for(j=i+1;jif(mark[j]) continue;

if(isanagram(strs[i],strs[j]))

}if(!flag) ans.pop_back();

}return ans;

} int main()

用雜湊法配合排序解決

等我睡醒

#include "string"

#include "algorithm"

#include "stdio.h"

#include "iostream"

#include "vector"

#include "map"

using

namespace

std;

vector

anagrams(vector

&strs)

for(i=0;istring str=strs[i];

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

if(my_map[str]>1)

ans.push_back(strs[i]);

}return ans;

} int main()

leetcode練習鏈結

這裡需要排序輸出,稍微有點複雜。

#include "string"

#include "algorithm"

#include "stdio.h"

#include "iostream"

#include "vector"

#include "map"

using

namespace

std;

typedef pair pair;

static

int cmp(const pair &x,const pair &y)

vector

> groupanagrams(vector

&strs)

vector

map_pair;

map::iterator it;

vector

::iterator lt;

vector

::iterator lj;

for(it=index.begin();it!=index.end();it++)

map_pair.push_back(make_pair(it->first,it->second));

sort(map_pair.begin(),map_pair.end(),cmp);

for(lt=map_pair.begin();lt!=map_pair.end();lt++)

return ans;

} int main()

亂序字串

給出乙個字串陣列s,找到其中所有的亂序字串 anagram 如果乙個字串是亂序字串,那麼他存在乙個字母集合相同,但順序不同的字串也在s中。所有的字串都只包含小寫字母 對於字串陣列 lint intl inlt code 返回 lint inlt intl 思路 認為每一組亂序字串都有唯一的相同的 h...

亂序字串

給出乙個字串陣列s,找到其中所有的亂序字串 anagram 如果乙個字串是亂序字串,那麼他存在乙個字母集合相同,但順序不同的字串也在s中。所有的字串都只包含小寫字母 樣例1 輸入 lint intl inlt code 輸出 lint inlt intl 樣例 2 輸入 ab ba cd dc e ...

lintcode 亂序字串

描述 給出乙個字串陣列s,找到其中所有的亂序字串 anagram 如果乙個字串是亂序字串,那麼他存在乙個字母集合相同,但順序不同的字串也在s中。實現 public class solution hashmaph new hashmap for int i 0 i個人感覺這個題目,lintcode給出...