【白俊】1316番組合せ語チェク
8588 ワード
1316番組単語チェック
キー値としてアルファベットを使用するMapを作成し、booleanタイプが使用されているかどうかを確認する値を追加します.マッピング[アルファベット]の値がfalseの場合、 は表示されません.[アルファベット]=trueをマップします.古い値が現在の値と同じである場合、 が連続します.[アルファベット]=trueをマッピングし、以前の値と異なる場合、断続的なアルファベット が表示されます.
したがって,3つ目の場合はグループ語として含めるだけでよい.
方法
キー値としてアルファベットを使用するMapを作成し、booleanタイプが使用されているかどうかを確認する値を追加します.
したがって,3つ目の場合はグループ語として含めるだけでよい.
import java.io.BufferedReader
import java.io.InputStreamReader
val br = BufferedReader(InputStreamReader(System.`in`))
val n = br.readLine().toInt()
fun main() {
val strList = mutableListOf<String>()
for (i in 0 until n) {
strList.add(br.readLine().trim())
}
val map = getAlphabetMap()
var ans = 0
strList.forEach { word ->
var now = "1"
var flag = false
word.forEach {
val str = it.toString()
if (map[str] == false) {
map[str] = true
now = str
} else if (map[str] == true && now != str) {
flag = true
return@forEach
}
}
if (!flag) {
ans++
}
resetAlphabetMap(map)
}
println(ans)
}
fun getAlphabetMap(): HashMap<String, Boolean> {
return hashMapOf<String, Boolean>().also { map ->
('a'..'z').forEach { it->
map[it.toString()] = false
}
}
}
fun resetAlphabetMap(map: HashMap<String, Boolean>) = map.keys.forEach { key -> map[key] = false }
Reference
この問題について(【白俊】1316番組合せ語チェク), 我々は、より多くの情報をここで見つけました https://velog.io/@greenddoovie/백준-1316번-그룹단어체커テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol