interview-go icon indicating copy to clipboard operation
interview-go copied to clipboard

第二题中的一些疑问?

Open gq-tang opened this issue 6 years ago • 4 comments

既然都是ASCII码,那长度大于256必定会出现重复的,所以改为以下是不是可以:

func isUniqueString(s string) bool {
	if len(s) > 256 {
		return false
	}

	unique := make(map[int32]bool)

	for _, v := range s {
		if v > 256 {
			return false
		}
		if _, ok := unique[v]; ok {
			return false
		} else {
			unique[v] = true
		}
	}
	return true
}

gq-tang avatar Mar 20 '19 06:03 gq-tang

不允许使用其他数据结构。你这里使用了map。

lifei6671 avatar Mar 20 '19 06:03 lifei6671

哦,那改成这样可以吧?

func isUniqueString(s string) bool {
	if len(s) > 256 {
		return false
	}

	for _, v := range s {
		if v > 256 {
			return false
		}
		if strings.Count(s, string(v)) > 1 {
			return false
		}
	}
	return true
}

gq-tang avatar Mar 20 '19 06:03 gq-tang

只有127个可以在键盘上打出来的,所以不用判断127之后的。

lifei6671 avatar Mar 20 '19 06:03 lifei6671

只有127个可以在键盘上打出来的,所以不用判断127之后的。

只要大于127,就必然重复这个事肯定的,不过和键盘没关系,ASCII码表长度就128,不过你那个题目有点坑

保证字符串中的字符为【ASCII字符】。字符串的长度小于等于【3000】。 这句话到底是题目保证的还是要实现的啊

NightmareZero avatar Nov 23 '21 07:11 NightmareZero