题解 | #找出字符串中第一个只出现一次的字符#
找出字符串中第一个只出现一次的字符
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) }