美文网首页
2021-12-10

2021-12-10

作者: 16孙一凡通工 | 来源:发表于2021-12-10 10:30 被阅读0次

字符串很多可以直接哈希或者用arr[26]来解决,这一题便是用的arr[26]。思路整体不难但是耗费时间

Go版本:

import (
    "fmt"
    "strings"
)
func shortestCompletingWord(licensePlate string, words []string) string {

// 长度最短,最靠前
var arr [26]int;
var str_arr [26]int;

licensePlate=strings.ToLower(licensePlate)
for i:=0;i<len(licensePlate);i++{
    tmp:=licensePlate[i]-'a';
if tmp>=0 && tmp<26{
    arr[tmp]++;
}
}

// fmt.Println(arr)
var res []int
var res_loc []int;
visited:=0
for key,str:=range  words {
    str=strings.ToLower(str);
    str_arr=arr;
    visited=0;

 for _,value:=range str{
    str_arr[value-'a']--;
 }
//  fmt.Println(str_arr)
  for i:=0;i<26;i++{
  if str_arr[i]>0{
       visited=1;
       break;
    }
  }
  if visited==0{
 res=append(res,len(str));
 res_loc=append(res_loc,key);
  }
}
min,min_loc:=res[0],res_loc[0];
for i:=0;i<len(res);i++{
    if min>res[i]{
     min=res[i];
     min_loc=res_loc[i];
    }
}
return words[min_loc]
}

相关文章

网友评论

      本文标题:2021-12-10

      本文链接:https://www.haomeiwen.com/subject/mvhcfrtx.html