027 - Sign Up Requests (★2)
キーワード
解説
入力された文字がすでに入力されているかを確かめれば良い. setを用いれば  で確認ができる.
go でsetを用いるには,github.com/liyue201/gostl/ds/setが必要.
import (
    "github.com/liyue201/gostl/ds/set"
	"github.com/liyue201/gostl/utils/comparator"
)
 
func main() {
    s := set.New(comparator.StringComparator)
    str := "hello"
    s.Insert(str) // 挿入
    s.Contains(str) // 存在のチェック
}あるいは, mapを用いて,
m := map[string]bool{}
 
str := "world"
 
m[str] = true
m[str] // 存在チェックmapを用いた場合の存在チェックは,
if val, ok := m[key]; ok {
    // ...
}でもできる. 存在する場合は, valには対応する値, okはtrueが入り, 存在しない場合は, valは規定値, okはfalseが入る.
提出コード
import (
    "github.com/liyue201/gostl/ds/set"
	"github.com/liyue201/gostl/utils/comparator"
)
 
// ...
 
func main() {
	n := readInts()[0]
	s := set.New(comparator.StringComparator)
 
	for i := 0; i < n; i++ {
		str := readStrings()[0]
 
		if s.Contains(str) {
			continue
		}
 
		writeLine(i + 1)
		s.Insert(str)
	}
}