stringヘッダの使用(8958)
CPPはcharポインタによる文字列の受信に加えて文字列ヘッダによる
文字列は配列で格納できます
3
first
str[0] = f
str[1] = i
str[2] = r
str[3] = s
str[4] = t
second
str[0] = s
str[1] = e
str[2] = c
str[3] = o
str[4] = n
str[5] = d
third
str[0] = t
str[1] = h
str[2] = i
str[3] = r
str[4] = d
これを基に白準配列問題8958を解くと.
各文字を並べて近づけることができます.
文字列は配列で格納できます
#include <iostream>
#include <string>
//int* arr;
//int arrLen;
//cin >> arrLen;
//arr = new int[arrLen];
using namespace std;
int main() {
int caseNum;
cin >> caseNum;
for (int i = 0; i < caseNum; i++) {
string str;
cin >> str;
for (int i=0;i<str.length();i++)
cout << "str[" << i << "] = " << str[i] << endl;
}
}
結果:3
first
str[0] = f
str[1] = i
str[2] = r
str[3] = s
str[4] = t
second
str[0] = s
str[1] = e
str[2] = c
str[3] = o
str[4] = n
str[5] = d
third
str[0] = t
str[1] = h
str[2] = i
str[3] = r
str[4] = d
これを基に白準配列問題8958を解くと.
#include <iostream>
#include <string>
using namespace std;
int main() {
int caseNum;
cin >> caseNum;
for (int i = 0; i < caseNum; i++) {
string str;
cin >> str;
int totalScore = 0;
int score = 0;
for (int i = 0; i < str.length(); i++) {
if (str[i] == 'O')
score++;
else if(str[i] == 'X')
score = 0;
totalScore += score;
}
cout << totalScore << endl;
}
}
stringが持つ方法.長さをlength()で求める各文字を並べて近づけることができます.
int totalScore = 0;
int score = 0;
총점변수와, 각 인덱스별 점수에 대한 변수를 주고
if (str[i] == 'O')
score++;
else if(str[i] == 'X')
score = 0;
totalScore += score;
O일 때 점수 기준을 +1 하고, X일때 벌어놓은 점수 기준을 초기화 시켜준 다음
한 인덱스마다 총점에 점수를 더해주는 방식으로 작성한다.
Pythonの場合、入力文字列をlist()に組み合わせると、自動的に各文字にリスト値が割り当てられます.import sys
a = int(input())
for i in range(a):
case = list(input())
total_score = 0
score = 0
for j in range(0, len(case)):
if case[j] == 'O':
score += 1
elif case[j] == 'X':
score = 0
total_score += score
print(total_score)
Reference
この問題について(stringヘッダの使用(8958)), 我々は、より多くの情報をここで見つけました https://velog.io/@leeyjwinter/string-헤더-사용해보기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol