Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.
#include<bits/stdc++.h>
using namespace std;
int main(){
long long i,dem[1000],d;
string s;
cin >>s;
for(i=0;i<s.size();i++)
dem[s[i]]++;
d=0;
for(i=97;i<=122;i++)
if(dem[i]%2==1)
d++;
if(d>0)
cout<<d-1;
else
cout<<0;
return 0;
}
Đếm số lần xuất hiện của các kí tự 'a'..'z' trong xâu S. Dễ thấy với các kí tự có số lần xuất hiện là chẵn, ta có thể xếp một nửa kí tự đó sang 2 bên thỏa mãn tính chất đối xứng. Đối với kí tự có số lần xuất hiện là lẻ, ta làm tương tự và đưa kí tự còn lại vào trung tâm. Như vậy, để xâu sau khi xóa đối xứng thì chỉ có duy nhất một kí tự có số lần xuất hiện lẻ nên ta sẽ xóa các kí tự lẻ đó, chỉ để lại 1 hoặc 0 cái cuối cùng.
code tham khảo:
int main()
{
string s;
cin >> s;
vector<int> fre(256, 0);
for (char c : s) fre[c]++;
int res = 0;
for (int x : fre) res += (x % 2 == 1);
cout << res - (res > 0);
return 0;
}
Dưới đây là một ví dụ về cách giải quyết bài toán này bằng ngôn ngữ Pascal:
function isPalindrome(s: string): boolean; var i, n: integer; begin n := Length(s); for i := 1 to n div 2 do begin if s[i] <> s[n - i + 1] then begin Result := false; Exit; end; end; Result := true; end; function countSuperPalindromes(s: string): integer; var i, j, n: integer; subStr: string; begin n := Length(s); Result := 0; // Đếm số xâu con đối xứng for i := 1 to n do begin subStr := ''; for j := i to n do begin subStr := subStr + s[j]; if isPalindrome(subStr) then Inc(Result); end; end; // Đếm số xâu con siêu đối xứng for i := 1 to n - 1 do begin subStr := ''; for j := i to n do begin subStr := subStr + s[j]; if isPalindrome(subStr) then Inc(Result); end; end; end; var s: string; begin s := 'ababcb'; writeln(countSuperPalindromes(s)); end.Kết quả của ví dụ trên sẽ là 3, tương ứng với 3 xâu con siêu đối xứng của xâu "ababcb" là "aba", "bcb", và "ababcb".
Lưu ý rằng đây chỉ là một cách giải quyết bài toán và có thể tồn tại các cách giải khác.
uses crt;
var st:string;
i,d:integer;
begin
clrscr;
readln(st);
d:=length(st);
for i:=1 to d do
if (st[i] in ['a'..'z']) or (st[i] in ['A'..'Z']) then write(st[i]);
writeln;
for i:=1 to d do
if (st[i] in ['0'..'9']) then write(st[i]);
readln;
end.
uses crt;
var s:string;
i,d:integer;
begin
clrscr;
readln(s);
d:=length(s);
for i:=1 to d do
if (s[i]='t') s[i]:='b';
cout<<s;
return 0;
Ở giữa (s[i]='t') s[i]:'b'; có thêm gì k ạ
Sao nó cứ báo lỗi
Program CHUOI_CHU_THUONG;
Uses Crt;
Var i,l:integer;
st:string[50];
Begin
Clrscr;
Writeln('DOI CHUOI SANG CHUOI CHU THUONG');
Writeln('------------------------------------------------------');
Write('Nhap chuoi ky tu: '); Readln(st);
For i:=1 to length(st) do
If (st[i]>='A') and (st[i]<='Z') then
st[i]:= chr(ord(st[i])+32);
Writeln;
Writeln('Chuoi doi thanh chu thuong la : ');
Writeln(st);
Writeln; l:=length(st);
st[l]:=upcase(st[l]);
For i:=l downto 2 do
If st[i]=' ' then st[i-1]:=upcase(st[i-1]);
Writeln('Chuoi cac ky tu cuoi cua tu la ky tu hoa: ');
Writeln(st);
Readln;
End.
Học tốt
Program DOI_CHUOI_CHU_HOA;
Uses Crt;
Var i:integer;st:string;
Begin
Clrscr;
Writeln('DOI CHUOI SANG CHUOI HOA');
Writeln('--------------------------------------');
Write('Nhap ho ten:');readln(st);
st[1]:=upcase(st[1]);
For i:=1 to length(St) do
If st[i]=' ' then st[i+1]:=upcase(st[i+1]);
Writeln('Ho ten sau khi doi lan 1 la: ',st);
For i:=1 to length(St) do
st[i]:=upcase(st[i]);
Writeln('Ho ten sau khi doi lan 2 la: ',st);
Readln;
End.