题解 | #找出字符串中第一个只出现一次的字符#
找出字符串中第一个只出现一次的字符
https://www.nowcoder.com/practice/e896d0f82f1246a3aa7b232ce38029d4
//用一个map记录重复的字符串
//遍历字符串找到第一个不重复的
package main
import (
"fmt"
)
type Emptyr struct{}
func main() {
var str string
fmt.Scan(&str)
//1. 建立一个map当set使用
em := Emptyr{}
myset := make(map[string]Emptyr)
//2. 遍历字符串 如果字符不在map里, 就添加到map,然后遍历字符看看是否重复
//如果在map里 就取出下一个字符向后遍历
counter := 0
flag2 := true //如果所有字符都重复 取出flag变量 用于打印-1
for counter < len(str) {
flag := true //flag用于标记当前字符是否重复 如果为false说明重复了 就跳出循环 判断下一个字符
temp := str[counter : counter+1]
_, ok := myset[temp]
if !ok {
myset[temp] = em
for i := counter + 1; i < len(str); i++ {
if str[i:i+1] == temp {
flag = false
break
}
}
flag2 = flag
if flag {
fmt.Println(temp)
break
}
}
counter++
}
if !flag2 {
fmt.Println(-1)
}
汤臣倍健公司氛围 395人发布