mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-07 15:45:40 +08:00
Update kama54.替换数字.md
This commit is contained in:
@ -56,36 +56,36 @@
|
||||
C++代码如下:
|
||||
|
||||
```CPP
|
||||
#include<iostream>
|
||||
#include <iostream>
|
||||
using namespace std;
|
||||
int main() {
|
||||
string s;
|
||||
while (cin >> s) {
|
||||
int sOldIndex = s.size() - 1;
|
||||
int count = 0; // 统计数字的个数
|
||||
int sOldSize = s.size();
|
||||
for (int i = 0; i < s.size(); i++) {
|
||||
if (s[i] >= '0' && s[i] <= '9') {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
// 扩充字符串s的大小,也就是每个空格替换成"number"之后的大小
|
||||
// 扩充字符串s的大小,也就是将每个数字替换成"number"之后的大小
|
||||
s.resize(s.size() + count * 5);
|
||||
int sNewSize = s.size();
|
||||
// 从后先前将空格替换为"number"
|
||||
for (int i = sNewSize - 1, j = sOldSize - 1; j < i; i--, j--) {
|
||||
if (s[j] > '9' || s[j] < '0') {
|
||||
s[i] = s[j];
|
||||
int sNewIndex = s.size() - 1;
|
||||
// 从后往前将数字替换为"number"
|
||||
while (sOldIndex >= 0) {
|
||||
if (s[sOldIndex] >= '0' && s[sOldIndex] <= '9') {
|
||||
s[sNewIndex--] = 'r';
|
||||
s[sNewIndex--] = 'e';
|
||||
s[sNewIndex--] = 'b';
|
||||
s[sNewIndex--] = 'm';
|
||||
s[sNewIndex--] = 'u';
|
||||
s[sNewIndex--] = 'n';
|
||||
} else {
|
||||
s[i] = 'r';
|
||||
s[i - 1] = 'e';
|
||||
s[i - 2] = 'b';
|
||||
s[i - 3] = 'm';
|
||||
s[i - 4] = 'u';
|
||||
s[i - 5] = 'n';
|
||||
i -= 5;
|
||||
s[sNewIndex--] = s[sOldIndex];
|
||||
}
|
||||
sOldIndex--;
|
||||
}
|
||||
cout << s << endl;
|
||||
cout << s << endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user