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