Kiểm Tra Xâu đối Xứng Pascal

Đề bài: Nhập vào một xâu S từ bàn phím rồi kiểm tra xem đó có phải là xâu đối xứng hay không?

– Xâu đối xứng là xâu khi đọc từ trái sang phải hoặc đọc từ phải sang trái đều như nhau

VD: “aba”, “abcba”, “12321” là xâu đối xứng. Còn “1232”, “aabcb”, “miticc06” không là xâu đối xứng.

Video hướng dẫn:

Hướng dẫn giải BT kiểm tra xâu đối xứng trong pascal:

Cách 1:

– đơn giản nhất là ta sẽ đọc ngược lại xâu S và lưu vào biến S1. sau đó kiểm tra xem S có giống S1 không? – Cách này trong SGK Tin Học 11 cũng đã viết, chúng ta sẽ tạo ra một xâu đảo ngược so với xâu S – Để tạo được xâu S1 đảo ngược so với xâu S ta sẽ cho vòng lặp chạy từ length(s) tới 1 rồi cộng vào xâu S1 từng kí tự S[i]. – Sau đó ta sẽ so sánh xâu S1 và S ban đầu, nếu hai xâu bằng nhau thì xâu S đối xứng, ngược lại xâu S không đối xứng.

Code tham khảo kiểm tra xâu đối xứng cách 1:

PROGRAM XAU_DOI_XUNG; USES CRT; VAR S,S1:STRING; i:INTEGER; BEGIN clrscr; writeln('Nhap xau '); readln(s); for i:= (length(s)) downto 1 do S1:=S1+S[i]; if (S1=S) then write('Xau doi xung') else writeln('Xau khong doi xung'); readln; END.

Cách 2:

-về thời gian thực hiện, cách 2 sẽ nhanh hơn cách 1

– Về ý tưởng, chúng ta sẽ kiểm tra phần tử đầu và cuối ngay lập tức, chứ không cần phải tạo ra S1 như ở cách 1. – Đối với cách này ta sẽ chạy vòng lặp For Do từ 1 tới một nửa xâu (Length(s) Div 2) và biến kiểm tra KT thuộc kiểu Boolean .Ban đâu thì KT:=TRUE,  trong quá trình chạy ta sẽ so sánh kí tự với kí tự đối xứng của nó (S[length(s) – i + 1]) nếu nó bằng ta tiếp tục so sánh nếu không bằng ta sẽ gán KT:=FALSE và dừng vòng lặp bằng lệnh BREAK; Sau khi chạy vòng lặp xong ta hãy kiểm tra biến KT, nếu nó TRUE tức là xâu đối xứng, ngược lại thì xâu không đối xứng.

Code tham khảo kiểm tra xâu đối xứng pascal

program xaudoixung; uses crt; var s : string; k: integer; procedure xdx(s : string ); var i : integer; kt: boolean; begin k := (length(s)); kt:=true; {gia su xau s doi xung} for i:= 1 to (k div 2) do begin if s[i] <> s[k-i+1] then begin kt:=false; break; end; end; if kt= true then writeln('Xau doi xung') else writeln('Xau khong doi xung'); end; begin clrscr; writeln('Nhap xau '); readln(s); xdx(s); readln; end.

Tải tài liệu bài tập chuyên đề về xây : Download

Bài tập tương tự:

1. Hãy kiểm tra số nguyên được nhập vào có là số đối xứng không?

– Ở bài này có 2 cách làm là sử dụng div mod hoặc cũng có thể xử lí bằng xâu như ở trên.

Nguồn: kienthuc24h

Chia sẻ:

  • Twitter
  • Facebook
Thích Đang tải…

Từ khóa » Ví Dụ Xâu đối Xứng