编程题目分享:字符串体力值计算
/*
输入n和k,n表示字符串长度,k表示体力,输入长度为n的字符串。
字符串中a表示1,b表示2,以此类推。
每前进一步,减去该步与上一步的差值,例如ab表示体力减一,ba表示体力加一。
如果体力小于0,则输出-1,否则输出体力。
*/
#include <iostream>
#include<vector>
using namespace std;
int main() {
int n, k; // 字符数、体力值
cin >> n >> k;
vector<char> str(n); // 存字符
for (int i = 0; i < n; i++) {
cin >> str[i];
}
for (int i = 0; i < n - 1; i++) { // 计算体力
if (k < 0) { // 如果体力值小于0,则输出-1
k = -1;
break;
}
int sub = str[i + 1] - str[i]; // 计算字符差值
k = k - sub; // 消耗体力值
}
cout << k << endl; //输出体力值
return 0;
}


查看17道真题和解析