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.

An và Bình đều đều tham gia bồi dưỡng đội tuyển học sinh giỏi môn tin học; khi 2 bạn cùng nghiên cứu về xâu ký tự. Bình muốn thử tài An về khả năng so sánh các xâu trong lập trình. Thực ra việc so sánh hai xâu theo An biết là tuân theo quy tắc so sánh xâu đã được học và phụ thuộc vào độ dài và vị trí các kí tự trong bảng mã ASCII. Tuy nhiên ở đây Bình lại muốn An so sánh các số được biểu diễn bằng xâu. Bình cho An một loạt các xâu và yêu cầu An sắp xếp các xâu này lại theo quy tắc mà Bình đặt ra như sau:

- Các xâu có chứa các kí tự khác kí tự chữ số thì giữ nguyên vị trí ban đầu.

- Các xâu biểu diễn số bằng các kí tự chữ số thì được sắp xếp lại theo thứ tự tăng dần.

Dữ liệu vào: Cho từ tệp văn bản Sortx.Inp gồm 2 dòng:

Dòng 1 ghi số nguyên dương N(N < 100).

Dòng 2 ghi một dãy gồm N xâu S_1,S_2,S_N chỉ bao gồm chữ số từ 1 đến 9 và các chữ cái La tinh.

Kết quả: Ghi ra tệp văn bản Sortx.Inp gồm 1 dòng là dãy xâu trên đã được sắp xếp theo quy tắc mà Bình yêu cầu.

Ví dụ:

Sortx.inp

Sortx.out

Giải thích

5

12 abc23 1456 ab 23

 

12 abc23 23 ab 1456

Giữ nguyên vị trí xuất hiện của xâu abc23, ab và sắp xếp lại vị trí xuất hiện của xâu: 12, 1456, 23 thành 12, 23, 1456

7

123 a 13 bc 345 23hh 10

 

10 a 13 bc 123 23hh 345

Giữ nguyên vị trí xuất hiện của xâu a, bc,23hh và sắp xếp lại vị trí xuất hiện của xâu: 123, 13, 345, 10 thành 10, 13, 123, 345

 

0
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.

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

20 tháng 8 2023

Làm bằng pascal nha

 

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 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.

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

 

24 tháng 12 2020

uses crt;

var st,st1:string;

i,d,kt:integer;

begin

clrscr;

write('Nhap xau:'); readln(st);

d:=length(st);

kt:=0;

for i:=1 to d do 

  if st[i]<>st[d-i+1] then kt:=1;

if kt=0 then writeln('Day la xau doi xung')

else begin

st1:='';

for i:=d downto 1 do 

  st1:=st1+st[i];

writeln('Xau dao cua xau ',st,' la: ',st1);

end;

readln;

end.

27 tháng 12 2020

thanks