

Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
#include <bits/stdc++.h>
using namespace std;
vector<string> splitNumbers(const string& s) {
vector<string> numbers;
stringstream ss;
for (size_t i = 0; i < s.length(); ++i) {
char c = s[i];
if (isdigit(c)) ss << c;
else if (!ss.str().empty()) {
numbers.push_back(ss.str());
ss.str(string());
}
}
if (!ss.str().empty()) numbers.push_back(ss.str());
return numbers;
}
bool compare(const string& number1, const string& number2) {
if (number1.length() < number2.length()) return true;
else if (number1.length() > number2.length()) return false;
else {
for (size_t i = 0; i < number1.length(); ++i)
if (number1[i] < number2[i]) return true;
else if (number1[i] > number2[i]) return false;
}
return false;
}
int main() {
string s;
cin >> s;
vector<string> numbers = splitNumbers(s);
sort(numbers.begin(), numbers.end(), compare);
int p = 0;
int i = 0;
while (i < s.length()) {
if (48 <= s[i] and s[i] <= 57) {
cout << numbers[p];
p++;
for (int j = i; j < s.length(); j++)
if (not(48 <= s[j] and s[j] <= 57)) {
i = j - 1;
break;
}
} else cout << s[i];
i++;
}
return 0;
}
$\\$
`\bb\color{#33a4f5}{\text{@hoanganhnguyen09302}}`
Hãy giúp mọi người biết câu trả lời này thế nào?
![]()
Ta có thể sử dụng biểu thức chính quy để tìm các số trong chuỗi, sắp xếp và xuất theo vị trí.
$\\$
Code tham khảo:
#include <iostream>
#include <vector>
#include <algorithm>
#include <regex>
#define ll long long
using namespace std;
void get(string s, vector<ll>& number) {
regex r("[0-9]+");
smatch m;
while (regex_search(s, m, r)) {
number.push_back(stoll(m.str()));
s = m.suffix().str();
}
}
int main() {
string s; getline(cin, s);
vector<ll> number;
get(s, number);
sort(number.begin(), number.end());
s += ".";
for (ll i=0, j=0; i<s.size()-1; ++i) {
if (!('0' <= s[i] && s[i] <= '9')) cout << s[i];
else if (!('0' <= s[i+1] && s[i+1] <= '9')) cout << number[j++];
}
}
$\\$
$\\$
$\color{#ffd710}{\texttt{\{}} \color{#8655d6}{\texttt{\{}}\ \ \color{#8cdcda}{\text{Daoanhviet96}}\ \ \color{#8655d6}{\texttt{\}}} \color{#ffd710}{\texttt{\}}}$
Hãy giúp mọi người biết câu trả lời này thế nào?
![]()
Bảng tin