Das ist Rute.
AtCoder Beginner Contest 175 A Ich werde das Problem "Regenzeit" erklären.
Problem-URL: https://atcoder.jp/contests/abc175/tasks/abc175_a
Geben Sie die maximale Anzahl aufeinanderfolgender Zeichen für "R" aus.
・
Definiere ls = [].
Erhält $ S $ als Zeichenfolge.
Jetzt setzen = 0. Dies wird später verwendet.
Führen Sie die folgende iterative Verarbeitung durch.
・ Wenn S [i](i Buchstabe von S)
"R" ist
Fügen Sie jetzt 1 hinzu.
· Wenn nicht
Fügen Sie den Wert von now in ls ein und setzen Sie den Wert von now auf 0.
Fügen Sie abschließend den Wert von now nach der Iteration in ls ein.
Von den Zahlen in ls ist die größte Zahl die Antwort, sodass Sie diese ausgeben können.
Da die Einschränkung recht klein ist, können Sie anscheinend im Voraus berechnen, wie viele R-Zeichen sich in jeder Zeichenfolge befinden, und jedes Mal mit bedingter Verzweigung ausgeben.
Python3 ist eine Methode, die eine Schleife verwendet, und C ++ und Java werden durch eine Methode der bedingten Verzweigung mit allen Zeichenfolgen gelöst. Es ist auch möglich, AC mithilfe einer Schleife in C ++ und Java und einer bedingten Verzweigung in allen Zeichenfolgen in Python3 durchzuführen.
{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);
}
}
}
Der Vergleich, ob die Zeichenfolgen mit "==" identisch sind, kann zu einer bedingten Verzweigung führen, die sich von der von der Java-Referenz erwarteten Ausgabe unterscheidet. Weitere Informationen finden Sie unter hier.