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)
}
}