给出一个有OX组成的串,长度为1-80,统计得分,每个O的得分是目前连续出现O的个数,X的得分是0,例如OOXXOXXOOO= 1+2+0+0+1+0+0+1+2+3
#include<iostream>
using namespace std;
int main() {
string s = "";
// 设置一个连续的标志
int flag = false;
// 设置一个总和
int sum = 0;
// 设置一个临时
int tem = 0;
cout << "输入包含X和O的字符串" << endl;
cin >> s;
for (int i =0; i != s.length(); i++) {
if (s[i] == 'O') {
if (flag == false) {
flag = true;
}
tem ++;
sum += tem;
} else {
flag = false;
tem = 0;
}
}
cout << sum<< endl;
return 0;
}
function calculate(str) {
if (arguments.length !== 1) {
console.log("参数不对");
}
let flag = false, sum = 0, temp = 0;
var strarr = str.split("");
for (let i = 0, j = strarr.length; i != j; i++) {
if (strarr[i] == 'O') {
if (flag === false) {
flag = true;
}
temp ++;
sum += temp;
} else if (strarr[i] == 'X') {
if (flag === true) {
flag = false;
temp = 0;
}
} else {
throw new Error('错误的字符');
}
}
console.log(sum);
}
calculate("OOXXOXXOOO");