stringヘッダの使用(8958)


CPPはcharポインタによる文字列の受信に加えて文字列ヘッダによる
文字列は配列で格納できます
#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)