K
Khách

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.

Cho một xâu s có độ dài n(n chẵn) chỉ bao gồm các chữ cái Latin viết hoa 'A', 'B' và 'C'. Mỗi lượt bạn có thể thực hiện một trong hai hành động sau:

Bạn có thể xóa chính xác một chữ cái 'A chính xác một chữ cái 'B' khỏi các vị trí tùy ý của chuỗi (các chữ cái này không nhất thiết phải liền kề nhau);Hoặc bạn có thể xóa chính xác một chữ cái 'B chính xác một chữ cái 'C' khỏi các vị trí tùy ý của chuỗi (các chữ cái này không nhất thiết phải liền kề nhau).

Do đó, độ dài của xâu giảm đi đúng một lượng là 2 chữ cái. Tất cả các lượt đều độc lập nên đối với mỗi lượt, bạn có thể chọn bất kỳ hành động nào trong hai hành động có thể.

Ví dụ, với s = "ABCABC������" anh ta có thể nhận được một xâu s = "ACBC����" trong một lượt (bằng cách xóa lần xuất hiện đầu tiên của 'B' và lần xuất hiện thứ hai của 'A'). Ngoài ra còn có nhiều tùy chọn khác để thực hiện ngoài ví dụ cụ thể này.

Với xâu kí tự s đã cho bạn có thể xác định rằng liệu có cách thực hiện các thao tác trên để biến xâu s thành rỗng hay không. Nếu có thì in ra 'YES' còn không có thì in ra 'NO'.

InputDòng đầu tiên chứa 2 số nguyên dương n(1n100000)(1≤�≤100000) - thể hiện chiều dài của xâu.Dòng thứ 2 chứa xâu s.OutputMột dòng duy nhất là 'YES' hoặc 'NO' tương ứng là có hoặc không có cách thực hiện các thao tác đã cho để biến xâu s thành rỗng.

Ví dụ 1:

Input:

Copy6 ABACAB

Output:

CopyNO
0

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.

Xâu đối xứngCho một xâu ký tự SS chỉ gồm các chữ cái thường a..z. Xâu đối xứng là xâu kí tự mà khi viết từ phải qua trái hay từ trái qua phải thì xâu đó không thay đổi. Ví dụ: madammadam, ioiioi là các xâu đối xứng.Yêu cầu: Với xâu ký tự SS cho trước, hãy tính số ký tự bỏ đi ít nhất để các ký tự còn lại có thể sắp xếp được thành một xâu đối xứng.Ví dụ:Cho xâu aammmda thì cần bỏ 2 ký tự a và m thì xâu...
Đọc tiếp

Xâu đối xứng

Cho một xâu ký tự SS chỉ gồm các chữ cái thường a..z. Xâu đối xứng là xâu kí tự mà khi viết từ phải qua trái hay từ trái qua phải thì xâu đó không thay đổi. Ví dụ: madammadam, ioiioi là các xâu đối xứng.

Yêu cầu: Với xâu ký tự SS cho trước, hãy tính số ký tự bỏ đi ít nhất để các ký tự còn lại có thể sắp xếp được thành một xâu đối xứng.

Ví dụ:

Cho xâu aammmda thì cần bỏ 2 ký tự a và m thì xâu còn lại là ammda và xếp lại thành madam là xâu đối xứng.

Cho xâu aaabbcc thì không cần bỏ ký tự thì xâu đó xếp lại thành bcaaacb là xâu đối xứng.

Dữ liệu vào

Đọc từ file văn bản XAUDX.INP chứa một xâu ký tự SS có nn ký tự (n≤105n≤105) chỉ gồm các ký tự chữ cái thường a..z.

Kết quả

Ghi ra file văn bản XAUDX.OUT một số nguyên là số lượng ký ít nhất cần bỏ để các ký tự còn lại có thể sắp xếp được thành một xâu đối xứng.

Sample Input 1

 

aammmda

Sample Output 1

 

2

Sample Input 2

 

aaabbcc

Sample Output 2

0

Lưu ý :Dùng C++

 

1

#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;
}

 

Xâu đối xứngCho một xâu ký tự SS chỉ gồm các chữ cái thường a..z. Xâu đối xứng là xâu kí tự mà khi viết từ phải qua trái hay từ trái qua phải thì xâu đó không thay đổi. Ví dụ: madammadam, ioiioi là các xâu đối xứng.Yêu cầu: Với xâu ký tự SS cho trước, hãy tính số ký tự bỏ đi ít nhất để các ký tự còn lại có thể sắp xếp được thành một xâu đối xứng.Ví dụ:Cho xâu aammmda thì cần bỏ 2 ký tự a và m thì xâu...
Đọc tiếp

Xâu đối xứng

Cho một xâu ký tự SS chỉ gồm các chữ cái thường a..z. Xâu đối xứng là xâu kí tự mà khi viết từ phải qua trái hay từ trái qua phải thì xâu đó không thay đổi. Ví dụ: madammadam, ioiioi là các xâu đối xứng.

Yêu cầu: Với xâu ký tự SS cho trước, hãy tính số ký tự bỏ đi ít nhất để các ký tự còn lại có thể sắp xếp được thành một xâu đối xứng.

Ví dụ:

Cho xâu aammmda thì cần bỏ 2 ký tự a và m thì xâu còn lại là ammda và xếp lại thành madam là xâu đối xứng.

Cho xâu aaabbcc thì không cần bỏ ký tự thì xâu đó xếp lại thành bcaaacb là xâu đối xứng.

Dữ liệu vào

Đọc từ file văn bản XAUDX.INP chứa một xâu ký tự SS có nn ký tự (n≤105n≤105) chỉ gồm các ký tự chữ cái thường a..z.

Kết quả

Ghi ra file văn bản XAUDX.OUT một số nguyên là số lượng ký ít nhất cần bỏ để các ký tự còn lại có thể sắp xếp được thành một xâu đối xứng.

Sample Input 1

 

aammmda

Sample Output 1

 

2

Sample Input 2

 

aaabbcc

Sample Output 2

0

Lưu ý :Dùng C++

 

1
14 tháng 2 2022

Đế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;
}

7 tháng 9 2023

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.

7 tháng 9 2023

nó chạy ko ra bạn ơi

 

viết chương trình pascal Hoán vị ký tự theo khóa - Tên chương trình GRCAE.??? Nhập vào xâu S chỉ chứa các ký tự là chỉ cái in thường và khoảng trắng. Cho trước khóa m là một hoán vị của n số (2<n<18). Để mã hóa một xâu ký tự ta có thể chia xâu thành từng nhóm từ trái sang phải mỗi nhóm có n ký tự; nếu nhóm cuối không đủ n ký tự thì ta có thể thêm các ký tự trắng vào sau cho đủ. Sau đó hoán vị các ký tự trong...
Đọc tiếp

viết chương trình pascal Hoán vị ký tự theo khóa - Tên chương trình GRCAE.???

Nhập vào xâu S chỉ chứa các ký tự là chỉ cái in thường và khoảng trắng.

Cho trước khóa m là một hoán vị của n số (2<n<18). Để mã hóa một xâu ký tự ta có thể chia xâu thành từng nhóm từ trái sang phải mỗi nhóm có n ký tự; nếu nhóm cuối không đủ n ký tự thì ta có thể thêm các ký tự trắng vào sau cho đủ. Sau đó hoán vị các ký tự trong từng nhóm theo khóa, ghép các nhóm xâu lại theo thứ tự ta được một xâu đã mã hóa. Hãy viết chương trình mã hóa một xâu kí tự cho trước.

Ví dụ: Với n=8 và khóa m=87345621, thực mã hóa xâu S = “hello every body” như sau:

Tách xâu S thành các xâu mỗi xâu có 8 ký tự:

S1 = “hello ev”; S2 = “ery o body”

Thực hiện mã hóa xâu S1, S2 theo khóa m ta được S1’ và S2’:

S1’ = “vello eh”; S2’ =”ydy bore”

Input: GRCAE.INP

· Dòng 1: số nguyên n (2<n<18) và m (m là số nguyên có n chữ số).

· Dòng 2: ghi xâu cần mã hóa (độ dài xâu <=10^5).

Ouput: GRCAE.OUT

· Mỗi dòng ghi 1 xâu có n ký tự đã được mã hóa.

Ví dụ:

GRCAE.INP GRCAE.OUT

8 87345621

hello every body vello eh ydy bore

0

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

27 tháng 3 2022

var s:string;

i:integer;

begin

write('Nhap xau ki tu S = ');readln(s);

for i:=1 to length(s) do

begin

if s[i] <> '0' then write('Vi tri cua so 0 cuoi cung la ',i-1);

i:=length(s);

end;

readln;

end.

Một thương lái vận chuyển và buôn bán hàng dọc theo tuyến đường dài n km, dọc đường từ km đầu tiên (1) tới km thứ n là các điểm buôn bán. Ban đầu xem như thương lái đứng ở vị trí 0: Trong mỗi lần vận chuyển ông chỉ có thể đi đúng chính xác a hoặc b km hướng về phía n và dừng lại tại điểm buôn bán Nếu đi a km, thương lái sẽ mất chi phí là x đồng. Còn nếu đi b km, thương lái sẽ mất chi phí là y...
Đọc tiếp
Một thương lái vận chuyển và buôn bán hàng dọc theo tuyến đường dài n km, dọc đường từ km đầu tiên (1) tới km thứ n là các điểm buôn bán. Ban đầu xem như thương lái đứng ở vị trí 0: Trong mỗi lần vận chuyển ông chỉ có thể đi đúng chính xác a hoặc b km hướng về phía n và dừng lại tại điểm buôn bán Nếu đi a km, thương lái sẽ mất chi phí là x đồng. Còn nếu đi b km, thương lái sẽ mất chi phí là y đồng Nếu buôn bán ở điểm dừng thứ i, ông sẽ nhận được mức lợi nhuận là Ai đồng Thương lái sẽ thực hiện việc vận chuyển và buôn bán như trên dọc theo tuyển đường và chỉ dừng lại ở điểm buôn bán thứ n (không được đi đến các điểm lớn hơn n, đảm bảo luôn tồn tại cách đi hợp lệ) Yêu cầu: Tìm số tiền lớn nhất thương lái có thể thu về. Lưu ý: chuyến buôn bán này sẽ có thể chỉ bị lỗ! (nếu lỗ thì phải lỗ ít nhất có thể) Dữ liệu: Nhập từ file TRADER.INP Dòng đầu tiền gồm năm số nguyên dương n, a, x, b, y (đảm bảo có thể đi đến n). Dòng tiếp theo chứa n số nguyên dương A1, A2, ... An mỗi số cách nhau một khoảng trống. (1 <= Ai <=10^9). Kết quả: Ghi ra file TRADER.OUT Một số nguyên duy nhất là tốc độ di chuyển lớn nhất có thể tìm được. Ràng buộc: 60% số test có n <= 20 40% số test có n <=10^6 bang c++
0