Điểm:
1100 (p)
Thời gian:
1.0s
Bộ nhớ:
512M
Input:
bàn phím
Output:
màn hình
Cho một xâu, nhiệm vụ của bạn là sắp xếp lại các kí tự của nó sao cho xâu đó trở thành một xâu đối xứng. Xâu đối xứng là xâu khi đọc xuôi hoặc ngược đều như nhau.
Input
- Một dòng duy nhất gồm một xâu độ dài \(n\) chỉ chứa các kí tự
A
-Z
.
Output
- In ra một xâu đối xứng chứa các kí tự của xâu ban đầu. Bạn có thể in ra bất kỳ đáp án thỏa mãn nào. Nếu không có đáp án, in
NO SOLUTION
.
Constraints
- \(1 \le n \le 10^6\)
Example
Sample input
AAAACACBA
Sample output
AACABACAA
Bình luận
Code C++
đây là code c++ cho ae theo lời hứa đây nè
include <bits/stdc++.h>
using namespace std;
void printqueue(queue<char> q)
{
while (!q.empty())
{
cout << q.front();
q.pop();
}
}
void printstack(stack<char> s)
{
while (!s.empty())
{
cout << s.top();
s.pop();
}
}
int main()
{
string str;
cin >> str;
map<char, int> c;
stack<char> s;
queue<char> q;
sort(str.begin(), str.end());
for (char i:str) c[i]++;
int odd = 0;
char middle = '';
for (pair<char,int> i:c)
{
if (i.second %2 !=0)
{
if (odd)
{
cout << "NO SOLUTION";
return 0;
}
odd ++;
middle = i.first;
}
for (int j = 0; j<i.second/2; j++)
{
q.push(i.first);
s.push(i.first);
}
}
printqueue(q);
if (middle!='') cout << middle;
printstack(s);
}
ai cần code c++ tui cho
tại sao ở test 1 em in ra AAAAAAAAAA lại wa vậy ạ?(đã biết lỗi sai:>)