- 重点:在字符串中删除某个字符
- 参数
i:表示要删除的起始位置 - 参数
n:表示要删除的字符个数
for (size_t i = 0; i < x.length(); ) { if (x[i] == ',' || x[i] == '-') { x.erase(i, 1); // 删除字符,长度自动减小 } else { ++i; // 只有不删除时才增加索引 } } - 参数
- 解题代码
#include <iostream> #include <vector> #include <map> #include <set> #include <algorithm> #include <iterator> #include <string> #include <cstdlib> #include <stack> #include <cmath> #define ll long long using namespace std; string A, B; void char_erase(string& x) { for (size_t i = 0; i < x.length(); ) { if (x[i] == ',' || x[i] == '-') { x.erase(i, 1); // 删除字符,长度自动减小 } else { ++i; // 只有不删除时才增加索引 } } } ll to_digit(string& x) { ll aws = 0; for (int i = x.size() - 1, j = 0; i >= 0; i--, j++) { aws += (x[i] - '0') * pow(10, j); } return aws; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); while (cin >> A >> B) { // 负号检查 bool flag_A = 0, flag_B = 0; if (A[0] == '-')flag_A = 1; if (B[0] == '-')flag_B = 1; // 逗号/负号移除 char_erase(A), char_erase(B); // 字符串转数字 ll a = to_digit(A), b = to_digit(B); if (flag_A) a = -a; if (flag_B) b = -b; cout << a + b << endl; } return 0; }
【机试】A+B
最新推荐文章于 2025-07-03 12:54:48 发布

5136

被折叠的 条评论
为什么被折叠?



