白駿-1316組単語checker
コード#コード#
C++
#include <iostream>
#include <string>
using namespace std;
int main() {
int n;
string str;
int answer = 0;
cin >> n;
for(int i=0;i<n;i++) {
cin >> str;
int alpha[27] = {0,};
int len = str.length();
bool check = true;
for(int j=0;j<len;j++) {
if(j == len-1) {
if(str[j] != str[j-1])
{
alpha[str[j]-'a']++;
}
} else {
if(str[j] != str[j+1]) {
alpha[str[j]-'a']++;
if(alpha[str[j+1]-'a'] == 1) {
check = false;
break;
}
}
}
if(alpha[str[j]-'a'] > 1) {
check = false;
break;
}
}
if(check) {
answer++;
}
}
cout << answer;
}
Pythonn = int(input())
for _ in range(n):
word = input()
for i in range(len(word)-1):
if word[i] != word[i+1]:
if word[i] in word[i+1:]:
n -= 1
break
print(n)
解答と感想
これはグループチャットを見ているときに聞かれた質問で、素早く解くためにc++で答えます.単語を比較するときは、以前に出てきたら
break
で解決します.aabaa
の反例が見つからなかったので、時間がかかりました.python
コードは最近一緒に勉強した兄が解決する方法で、他の単語が現れたら、次の単語からカットして、その中に存在するかどうかを知る方法で解決します.結構時間がかかると思いますが、初めてドアから最大になるとアルファベット数が27回くらいなので速度的には問題ないと思います.Reference
この問題について(白駿-1316組単語checker), 我々は、より多くの情報をここで見つけました https://velog.io/@cookncoding/백준-1316-그룹-단어-체커テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol