蠻力法
思路等會睡醒之後寫吧
#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給出...