送分题不做赘述。
Go版本:
func dominantIndex(nums []int) int {
if(len(nums)<2){
return 0;
}
max,loc:=math.MinInt64,0;
for key,_:=range nums{
if(nums[key]>max){
max=nums[key];
loc=key;
}
}
count:=0;
for key,_:=range nums{
if(nums[key]*2>max){
count++;
}
}
if count>1{
return -1;
}
return loc;
}
剑指 Offer II 032. 有效的变位词
给定两个字符串 s
和 t
,编写一个函数来判断它们是不是一组变位词(字母异位词)。
注意:若 *s*
和 *t*
中每个字符出现的次数都相同且字符顺序不完全相同,则称 *s*
和 *t*
互为变位词(字母异位词)。
哈希表一套就行了
Go版本
func isAnagram(s string, t string) bool {
if(len(s)!=len(t)){
return false;
}
map1,map2:=make(map[int]int),make(map[int]int);
count:=0;
for i:=0;i<len(s);i++{
if s[i]==t[i]{
count++;
}
map1[int(s[i]-'a')]++;
map2[int(t[i]-'a')]++;
}
if count==len(s){
return false;
}
for key,_:=range map1{
if(map1[key]!=map2[key]){
return false;
}
}
return true;
}
字符串数组 strs 排序:// sort.Sort(sort.StringSlice(strs));
单个字符串 value排序: s := strings.Split(value, ""); sort.Strings(s) ; value_s:=strings.Join(s, "")
网友评论