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