![]() |
1
misaka19000 2017-11-10 22:44:46 +08:00 ![]() 蛆虫一般都用 set 来实现吧?
|
2
missdeer 2017-11-10 22:52:10 +08:00 ![]() 同一楼,作为 key 插到 map[string]struct{}中
|
![]() |
3
BBCCBB 2017-11-10 23:03:03 +08:00 ![]() 双指针, 一个指向空,一个指向非空,将非空的移动到空的, 然后继续这种操作。
|
![]() |
4
BBCCBB 2017-11-10 23:09:33 +08:00 ![]() 忘了去重了,擦,去重就 set 了
|
![]() |
5
wweir 2017-11-10 23:33:56 +08:00 via Android ![]() sort 和 map 比比吧。
一个 O(nlogn),一个 O(1)但有 hash 算法的消耗。 谁更好得看数据规模了 |
![]() |
6
SlipStupig 2017-11-10 23:34:10 +08:00 ![]() 去 空格用 strings.Trims,要去重的话用 Set 实现,golang 没有 set 函数可以自己用 map 去实现判定就可以高效去重复:
eg: set 构造: set := make(map[string]bool) if _, ok := set[key]; ok { //存在 return }else{ // 如果删除空格后字符串长度 0,说明是个空格我们放弃 if len(string.Trims(key)) == 0{ return } //添加 key elements[key] = true } |
![]() |
9
cheshire 2017-11-11 16:47:28 +08:00 ![]() @SlipStupig bool 类型的不需要加 ` if _, ok := hash[val]; ok {}` , 直接判断 hash[val] 就行
|