Bạn chưa đăng nhập. Vui lòng đăng nhập để hỏi bài

Những câu hỏi liên quan
Khánh Mỹ
Xem chi tiết
Buddy
3 tháng 3 2021 lúc 14:54

program bai_10_chuong_4;

uses crt;

var

s: string[100];

i, dem: integer;

Begin

clrscr;

write('Nhap xau vao:'); readln(s); dem:= 0;

for i:= 1 to length(s) do

if ('0'<=s[i]) and(s[i]<=’9') then dem:=dem+l;

Writeln('Trong xau s co '»dem,' chu so thap phan');

readln;

End.

 

Nguyễn Lê Phước Thịnh
3 tháng 3 2021 lúc 19:43

uses crt;

var st:string[100];

i,d,kt:integer;

begin

clrscr;

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

kt:=0;

for i:=1 to length(st) do

if st[i]<>st[length(st)-i+1] then kt:=1;

if kt=0 then write('Xau doi xung')

else writeln('Xau khong doi xung');

readln;

end.

phuoc
20 tháng 8 2021 lúc 14:59

code đây bạn c++ nha:

#include<bits/stdc++.h>
using namespace std;
char doixung(char s1[100])
{
long long i;
for(i=0;i<strlen(s1)/2;i++)
{
    if(s1[i] != s1[strlen(s1)-1-i])
         return 0;
}
return 1;
}
int main()
{
char s1[100];
cin>>s1;
if(doixung(s1)==0)
{
   cout<<"k la cxau doi xung";
}
if(doixung(s1)==1)
{
   cout<<"la xau doi xung";
}
return 0 ;
}

Minh Lệ
Xem chi tiết
Time line
19 tháng 8 2023 lúc 9:16

Tham khảo:

Quy trình thiết kế theo phương pháp làm mịn dần để kiểm tra xâu kí tự có là đối xứng hay không gồm các bước sau:

Bước 1: Nhận đầu vào là xâu kí tự cần kiểm tra.

Bước 2: Loại bỏ các kí tự không cần thiết, chẳng hạn khoảng trắng và dấu cách, để chuẩn bị cho quá trình kiểm tra.

Bước 3: Chuyển đổi xâu kí tự về dạng chữ thường hoặc dạng chữ hoa (tuỳ thuộc vào yêu cầu của đề bài) để đảm bảo tính nhất quán trong quá trình kiểm tra.

Bước 4: Sử dụng một vòng lặp để so sánh các kí tự ở đầu và cuối xâu kí tự, sau đó di chuyển lần lượt về phía nhau.

Bước 5: Trong quá trình lặp lại, so sánh các kí tự ở hai vị trí tương ứng với nhau. Nếu chúng khác nhau, xâu kí tự không là đối xứng và chương trình dừng lại, trả về kết quả là "Không đối xứng".

Bước 6: Nếu các kí tự ở hai vị trí tương ứng với nhau đều giống nhau, tiếp tục di chuyển các con trỏ về phía nhau và so sánh các kí tự tiếp theo cho đến khi hoàn thành kiểm tra toàn bộ xâu kí tự.

Bước 7: Nếu tất cả các cặp kí tự ở vị trí tương ứng với nhau đều giống nhau, tức là xâu kí tự là đối xứng, chương trình dừng lại và trả về kết quả là "Đối xứng".

 

Bước 8: Kết thúc chương trình và đưa ra kết quả cuối cùng.

Chương trình:

def kiem_tra_doi_xung(xau):

 # Loại bỏ các kí tự không cần thiết và chuyển đổi xâu về dạng chữ thường

 xau = xau.replace(" ", "").lower()

 n = len(xau)

 # Sử dụng vòng lặp để kiểm tra từ đầu và cuối xâu kí tự

 for i in range(n // 2):

  if xau[i] != xau[n - i - 1]:

   return "Không đối xứng"

 return "Đối xứng"

Long ca ca
Xem chi tiết
Phía sau một cô gái
30 tháng 6 2023 lúc 20:10

program superSymmetricalSubstring;

var

      s: string;

function isSymmetrical(str: string): boolean;

var

      i, len: integer;

begin

      len := length(str);

      for i := 1 to len div 2 do

      begin

            if str[i] <> str[len - i + 1] then

            begin

                  exit(false);

            end;

      end;

      exit(true);

end;

function countSuperSymmetricalSubstrings(s: string): integer;

var

      i, j, len, count: integer;

begin

      len := length(s);

      count := 0;

      for i := 1 to len do

      begin

            for j := 2 to len - i + 1 do

            begin

                  if isSymmetrical(copy(s, i, j)) then

                  begin

                        count := count + 1;

                  end;

            end;

      end;

      count := count + len;

      exit(count);

end;

begin

      write('Nhap xau S: ');

      readln(s);

      writeln('So xau con sieu doi xung cua S: ', countSuperSymmetricalSubstrings(s));

      readln;

end.

Long ca ca
Xem chi tiết
meme
7 tháng 9 2023 lúc 13:41

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.

hoanganh
Xem chi tiết
Nguyễn Lê Phước Thịnh
8 tháng 5 2021 lúc 20:23

uses crt;

const fi='xau.txt'

var f1:text;

s:string;

i,d,kt:integer;

begin

clrscr;

assign(f1,fi); reset(f1);

readln(f1,s);

d:=length(s);

kt:=0;

for i:=1 to d do

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

if kt=0 then writeln('Xau doi xung')

else writeln('Xau khong doi xung');

readln;

end.

Duy Nguyễn
Xem chi tiết
Hello1234
Xem chi tiết

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

 

Hello1234
Xem chi tiết
Nguyễn Thị Thùy Trang
14 tháng 2 2022 lúc 13:37

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

phan nguyễn tấn khởi
Xem chi tiết
Nguyễn Lê Phước Thịnh
24 tháng 12 2020 lúc 13:08

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.