C'est Rute.
AtCoder Beginner Contest 175 A Je vais vous expliquer le problème de la «saison des pluies».
URL du problème: https://atcoder.jp/contests/abc175/tasks/abc175_a
Affiche le nombre maximum de caractères consécutifs pour «« R »».
・ou
'R'`
Définissez ls = [].
Reçoit $ S $ sous forme de chaîne.
Définir maintenant = 0. Cela sera utilisé plus tard.
Effectuez le traitement itératif suivant.
・ Si S [i](i lettre de S)
est "R"
Ajoutez 1 à maintenant.
· Si non
Insérez la valeur de now dans ls et définissez la valeur de now sur 0.
Enfin, insérez la valeur de now dans ls après l'itération.
Parmi les nombres de ls, le plus grand nombre est la réponse, vous pouvez donc le sortir.
Ou, comme la contrainte est assez petite, il semble que vous puissiez calculer à l'avance le nombre de caractères `` R '' dans chaque chaîne de caractères et sortir à chaque fois avec un branchement conditionnel.
Python3 est une méthode utilisant une boucle, et C ++ et Java sont résolus par une méthode de branchement conditionnel avec toutes les chaînes de caractères. Il est également possible d'effectuer un AC en utilisant une boucle en C ++ et Java, et un branchement conditionnel dans toutes les chaînes de caractères en Python3.
{ABC175A.py}
S = input()
ls = []
now = 0
for i in range(3):
if S[i] == "R":
now += 1
else:
ls.append(now)
now = 0
ls.append(now)
print(max(ls))
{ABC175A.cpp}
#include<bits/stdc++.h>
using namespace std;
int main(){
string S;
cin >> S;
if (S == "RRR"){
cout << 3 << endl;
}else if (S == "RRS"){
cout << 2 << endl;
}else if (S == "SRR"){
cout << 2 << endl;
}else if (S == "SRS"){
cout << 1 << endl;
}else if (S == "RSR"){
cout << 1 << endl;
}else if (S == "RSS"){
cout << 1 << endl;
}else if (S == "SSR"){
cout << 1 << endl;
}else{
cout << 0 << endl;
}
}
{ABC175A.java}
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
String s = scan.next();
if (s.equals("RRR")){
System.out.println(3);
}else if (s.equals("RRS")){
System.out.println(2);
}else if (s.equals("SRR")){
System.out.println(2);
}else if (s.equals("RSR")){
System.out.println(1);
}else if (s.equals("RSS")){
System.out.println(1);
}else if (s.equals("SRS")){
System.out.println(1);
}else if (s.equals("SSR")){
System.out.println(1);
}else{
System.out.println(0);
}
}
}
Comparer si les chaînes sont les mêmes à l'aide de `` '==' 'peut entraîner une branche conditionnelle différente de la sortie attendue par la référence Java. Pour plus de détails, veuillez consulter ici.
Recommended Posts