Kiểm Tra Xâu đối Xứng Pascal Và C++ - Kiến Thức 24h
Có thể bạn quan tâm
Đề 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.
I. Hướng dẫn giải BT kiểm tra xâu đối xứng trong pascal C++
1. Kiểm tra xâu đối xứng cách 1
– Cách đơ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 2 xâu có hoàn toàn giống nhau hay không?
ví dụ:
S=”abcde” => S1=”edcba”. 2 xâu này không giống nhau nên không là xâu đối xứng.
S=”aabccbaa” => S1=”aabccbaa”. 2 xâu này giống nhau hoàn toàn nên kết luận được là xâu đối xứng.
– Đây cũng là cách mà trong sách giáo khoa Tin học 11 chia sẻ.
- Đầu tiên chúng ta sẽ tạo xâu đảo ngược so với xâu ban đầu,
- Sau đó chúng ta so sánh if (s1=s) then …..
a. Code kiểm tra xâu đối xứng cách 1 Pascal
program kiem_tra_xau_doi_xung; uses crt; var s, s1: string i:integer; begin clrscr; writeln('Nhap vao xau s: '); readln(s); for i:=length(s) downto 1 do s1:=s1+s[i]; if (s1=s) then writeln('Xau doi xung') else writeln('Xau khong doi xung'); readln; end.b. Code kiểm tra xâu đối xứng cách 1 c++
#include <iostream> #include <string> using namespace std; int main() { string s, s1=""; getline(cin,s); for (int i=s.length()-1; i>=0; i--) s1=s1+s[i]; if (s1==s) cout << "La xau doi xung"; else cout << "ko la xau doi xung"; return 0; }2. Kiểm tra xâu đối xứng cách 2
– Cách thứ 2 cải tiến từ cách thứ nhất, thay vì sinh lại một xâu nghịch đảo rồi so sánh thì chúng ta so sánh trực tiếp từng kí tự trên xâu gốc, nên thời gian chạy sẽ nhanh hơn cách thứ nhất.
– Nhận xét chung: do xâu đối xứng là xâu khi đảo ngược lại sẽ giống hoàn toàn vơi xâu gốc nên chúng ta có thể xét dựa vào so sánh lần lượt các phần tử đầu xâu với các phần tử cuối xâu.
ví dụ s=”abba”
ta có s[1]=s[4], s[2]=s[3] nên kết luận nó là xâu đối xứng.
Như vậy chúng ta chỉ cần cho biến i chạy từ 1 đến (độ dài xâu) chia 2 và so sánh s[i] với s[(độ dài xâu) – i +1] nếu tồn tại một chỗ mà 2 kí tự khác nhau chúng ta có thể kết luận ngay nó ko đối xứng.
a. Code tham khảo kiểm tra xâu đối xứng cách 2 pascal
program kiem_tra_xau_doi_xung; var s : string; k: integer; function doixung(s:string):Boolean; var i:integer; begin k:=length(s); for i:= 1 to (k div 2) do begin if s[i] <> s[k-i+1] then exit (False); end; exit(true); end; begin writeln('Nhap vao xau s: '); readln(s); if (doixung(s)=true) then writeln('Xau doi xung') else writeln('Xau khong doi xung'); readln; end.b. Code tham khảo kiểm tra xâu đối xứng cách 2 c++
#include <iostream> #include <string> using namespace std; bool doixung(string s) { for (int i=0; i<=s.length()/2; i++) if (s[i]!=s[s.length()-i-1]) return 0; return 1; } int main() { string s; getline(cin,s); if (doixung(s)) cout << "La xau doi xung"; else cout << "ko la xau doi xung"; return 0; }II. 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.
2. Viết chương trình kiểm tra mảng số nguyên nhập vào có là xâu đối xứng hay không?
Từ khóa » Chuỗi đối Xứng Trong C++
-
Kiểm Tra Chuỗi đối Xứng C++ - Programming - Dạy Nhau Học
-
LTC 78. Kiểm Tra Chuỗi đối Xứng Trong Lập Trình C - YouTube
-
Chuỗi đối Xứng - Cộng đồng C Việt
-
Bài 78. Kiểm Tra Chuỗi đối Xứng Trong Lập Trình C
-
Kiểm Tra Số đối Xứng Trong C++
-
Kiểm Tra Số đối Xứng Trong C/C++ - Lập Trình Không Khó
-
Tính Tổng Các Giá Trị đối Xứng Trong Mảng Gồm Các Số Nguyên.
-
Code Kiểm Tra Số đối Xứng Hay Không C++ - Trangwiki
-
Kiểm Tra Số đối Xứng | How Kteam
-
QBPAL - Đếm Chuỗi đối Xứng - Tutorial SPOJ
-
Kiểm Tra Chuỗi đối Xứng Trong Java - Bài Tập Java Có Lời Giải Cơ Bản ...
-
Kiểm Tra Số đối Xứng Trong C++ - Freetuts