給出乙個字串陣列s,找到其中所有的亂序字串(anagram)。如果乙個字串是亂序字串,那麼他存在乙個字母集合相同,但順序不同的字串也在s中。一,使用hashmap,亂序字串擁有同樣的key,亂序字串放入arraylist< string >中,作為value注意事項
所有的字串都只包含小寫字母
樣例
對於字串陣列 [「lint」,」intl」,」inlt」,」code」]
返回 [「lint」,」inlt」,」intl」]
二,key該是什麼形式? 字元+個數 「abadc」——> 「a2b1c1d1」
三,首先:將陣列s中元素put進hash中
然後:獲取hash的values,遍歷,若value.size()>1,則為一組亂序字串
public
class
solution
res.add(str); //在此給value arraylist新增遍歷到的string
}arraylistresset =new arraylist();
for(arraylistanagram:hash.values())
return resset;
}public string generalstring(string s)
stringbuilder sb=new stringbuilder();
for(i=0;i<26;i++)
/* if(a[i]==0) continue;
}
return sb.tostring();
}}
hashmap定義,初始化
hashmap< string,arraylist< string>> hash=new hashmap< string,arraylist< string>>();
hashmap新增元素
hash.put(key,res);
hashmap由key取value
arraylist< string> res=hash.get(key);
hashmap中所有值
hash.values()
陣列的另一種遍歷方法
for(string str:s)
arraylist< t> a 新增 arraylist< t> a的所有元素
a.addall(a);
lintcode 171 亂序字串
給出乙個字串陣列s,找到其中所有的亂序字串 anagram 如果乙個字串是亂序字串,那麼他存在乙個字母集合相同,但順序不同的字串也在s中。樣例 樣例1 輸入 lint intl inlt code 輸出 lint inlt intl 樣例 2 輸入 ab ba cd dc e 輸出 ab ba cd...
lintcode 171 亂序字串
給出乙個字串陣列s,找到其中所有的亂序字串 anagram 如果乙個字串是亂序字串,那麼他存在乙個字母集合相同,但順序不同的字串也在s中。注意事項 所有的字串都只包含小寫字母 樣例對於字串陣列 lint intl inlt code 返回 lint inlt intl 挑戰what is anagr...
兩次過 Lintcode 171 亂序字串
給出乙個字串陣列s,找到其中所有的亂序字串 anagram 如果乙個字串是亂序字串,那麼他存在乙個字母集合相同,但順序不同的字串也在s中。對於字串陣列 lint intl inlt code 返回 lint inlt intl what is anagram?所有的字串都只包含小寫字母 找到所有相同...