|
56 | 56 | C++代码如下:
|
57 | 57 |
|
58 | 58 | ```CPP
|
59 | | -#include<iostream> |
| 59 | +#include<iostream> |
60 | 60 | using namespace std;
|
61 | 61 | int main() {
|
62 | 62 | string s;
|
63 | 63 | while (cin >> s) {
|
| 64 | + int sOldIndex = s.size() - 1; |
64 | 65 | int count = 0; // 统计数字的个数
|
65 | | - int sOldSize = s.size(); |
66 | 66 | for (int i = 0; i < s.size(); i++) {
|
67 | 67 | if (s[i] >= '0' && s[i] <= '9') {
|
68 | 68 | count++;
|
69 | 69 | }
|
70 | 70 | }
|
71 | | - // 扩充字符串s的大小,也就是每个空格替换成"number"之后的大小 |
| 71 | + // 扩充字符串s的大小,也就是将每个数字替换成"number"之后的大小 |
72 | 72 | s.resize(s.size() + count * 5);
|
73 | | - int sNewSize = s.size(); |
74 | | - // 从后先前将空格替换为"number" |
75 | | - for (int i = sNewSize - 1, j = sOldSize - 1; j < i; i--, j--) { |
76 | | - if (s[j] > '9' || s[j] < '0') { |
77 | | - s[i] = s[j]; |
| 73 | + int sNewIndex = s.size() - 1; |
| 74 | + // 从后往前将数字替换为"number" |
| 75 | + while (sOldIndex >= 0) { |
| 76 | + if (s[sOldIndex] >= '0' && s[sOldIndex] <= '9') { |
| 77 | + s[sNewIndex--] = 'r'; |
| 78 | + s[sNewIndex--] = 'e'; |
| 79 | + s[sNewIndex--] = 'b'; |
| 80 | + s[sNewIndex--] = 'm'; |
| 81 | + s[sNewIndex--] = 'u'; |
| 82 | + s[sNewIndex--] = 'n'; |
78 | 83 | } else {
|
79 | | - s[i] = 'r'; |
80 | | - s[i - 1] = 'e'; |
81 | | - s[i - 2] = 'b'; |
82 | | - s[i - 3] = 'm'; |
83 | | - s[i - 4] = 'u'; |
84 | | - s[i - 5] = 'n'; |
85 | | - i -= 5; |
| 84 | + s[sNewIndex--] = s[sOldIndex]; |
86 | 85 | }
|
| 86 | + sOldIndex--; |
87 | 87 | }
|
88 | | - cout << s << endl; |
| 88 | + cout << s << endl; |
89 | 89 | }
|
90 | 90 | }
|
91 | 91 |
|
|
0 commit comments