Quan sát các ví dụ sau để tìm hiểu cách kiểm tra xâu con và tìm kiếm vị trí xâu con trong xâu kí tự.
Xâu kí tự được gọi là đối xứng nêu thay đổi thứ tự ngược lại các kí tự của xâu thì vẫn nhận được dãy ban đầu. Ví dụ xâu “abcdcba" là đối xứng, còn xâu “1011” không là đối xứng. Thiết kế và viết chương trình kiểm tra một xâu kí tự cho trước có là đối xứng hay không. Yêu cầu đưa ra quy trình thiết kế theo phương pháp làm mịn dần.
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"
1.Viết chương trình nhập vào 1 xâu (s1) và in ra màn hình xâu đã nhập. + nhập vào xâu thứ 2 và in ra màn hình xâu dài hơn( nếu bằng nhau thì in ra xâu nhập sau) +kiểm tra kí tự đầu tiên trong xâu S1 có trùng với kí tự cuối cùng của xâu S2 khong? +in ra màn hình xâu đảo ngược của xâu S1 +in ra xâu S1 khi đã loại bỏ kí tự trắng ( nếu có) +in ra xâu chỉ có kí tự là chữ cái xuất hiện trong xâu S2( không phân biệt chữ hoa, thường) +đếm xem có bao nhiêu chữ số trong xâu S2. Ét o ét mọi người ơi
viết chương trình nhập vào một xâu S rồi thực hiện các yêu cầu sau: a) in ra màn hình xâu S sau khi đã thay thế tất cả các kí tự 'C' thành 'LOP11A' b) hãy cho biết trong xâu S có bao nhiu kí tự c) nhập thêm xâu s1 rồi kiểm tra xem kí tự đầu của hai xâu S và S1 có trùng nhau không, xuất kết quả ra màn hình
program bai1;
uses crt;
var i:integer;
s,s1:string;
begin
clrscr;
write('nhap S:');readln(s);
while pos('C',s)<>0 do
begin
insert('LOP11A',s,pos('C',s));
delete(s,pos('C',s),1);
end;
writeln('xau sau khi bien doi la: ',s);
writeln('do dai cua xau tren la: ',length(s));
write('nhap s1:');readln(s1);
if s1[1]=s[1] then writeln('ki tu dau cua hai xau trung nhau')
else writeln('ki tu dau cua hai xau khong trung nhau');
readln;
end.
Viết chương trình nhập vào từ bàn phím một xâu có thể chưa chuẩn về dấu cách, hãy loại bỏ các dấu cách thừa có trong xâu đó. Ví dụ : ' Hoc tap suot doi ''Hoc tap suot doi'
Cách làm:
+ Xóa dấu cách thừa ở đầu và cuối xâu: Kiểm tra cứ khi nào ký tự đầu tiên hoặc kí tự cuối của xâu S: là dấu cách thì xóa bỏ.
+Xóa dấu cách thừa ở giữa các từ: Cứ khi nào s[i] và s[i+1] đều là dấu cách thì xóa đi 1 dấu cách.
#include <bits/stdc++.h>
using namespace std;
int d,i,d1;
string st;
int main()
{
getline(cin,st);
d=st.length();
while (st[0]==32)
{
st.erase(0,1);
}
while (st[d-1]==32)
{
st.erase(d-1,1);
}
d1=st.length();
for (i=0; i<d1; i++)
if ((st[i]==32) && st[i+1]==32)
{
st.erase(i,1);
i--;
}
cout<<st;
return 0;
}
1.Khái niệm về xâu và kiểu string.
-Xâu kí tự là một dãy gồm nhiều kí tự đặt cạnh nhau và được đánh các số phần tử theo chỉ số;ví dụ”Toan Tin”,phần tử thứ I là s[i].
-Như vậy xét về bản chất xâu kí tự giống như một mảng kí tự.
-Ta đặt xâu kí tự trong dấu nháy kép,còn mỗi kí tự ta đặt trong dấu nháy đơn.
Cho 1 xâu ( có chứa kí tự cách). In ra màn hình vị trí đầu tiên xuất hiện kí tự dấu cách trong xâu.
uses crt;
var st:string;
i,d:integer;
begin
clrscr;
write('Nhap xau:'); readln(st);
d:=length(st);
for i:=1 to d do
if st[i]=#32 then
begin
writeln(i);
break;
end;
readln;
end.
giúp em với sáng mai em thi rồi..
1.viết chương trình nhập vào một xâu kí tự từ bàn phím. in ra màn hình xâu kí tự sau khi đã thay các từ "nang" thành "mua".
2. viết chương trình vào một xâu kí tự từ bàn phím .kiểm tra xem xâu đó có phải là xâu palindrom không? ( Xâu palindrom là xâu khi viết từ trái qua phải cũng giống như từ phải qua trái, VD: Xâu 'ABBA' là một xâu palindrom).
giúp em với ạ em rất cần gấp
Bài 1:
uses crt;
var S:String;
vt:integer;
begin
clrscr;
Write(‘Nhap 1 xau:’); Readln(S);
While pos(‘nang’,s)>0 do
Begin
Vt:= pos(‘nang’,s);
Delete(s,vt,4);
Insert(‘mua’,s ,vt);
End;
Writeln(‘Xau sau khi thay the ’,s);
Readln;
End.
Bài 2:
uses crt;
var st:string;
d,i,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(st,' la xau doi xung')
else writeln(st,' khong la xau doi xung');
readln;
end.
nhập 1 xâu kí tự (gồm chữ và số), sau đó in ra màn hình các chữ số có trong xâu và vị trí của số trong câu.
#include <bits/stdc++.h>
using namespace std;
string st;
int d,i;
int main()
{
getline(cin,st);
d=st.length();
for (i=0; i<d; i++)
if ((int(st[i])>=48) and (int(st[i])<=57)) cout<<st[i]<<" ";
cout<<endl;
for (i=0; i<=d-1; i++)
if ((int(st[i])>=48) and (int(st[i])<=57)) cout<<i<<" ";
return 0;
}
Câu 1:
Nhập vào 2 xâu s1, s2:
- Kiểm tra s1 nằm ở vị trí nào trong s2 (Nếu độ dài của s2 > s1) còn nếu độ dài s1 > s2 thì kiểm tra s2 có nằm trong s1 không
Câu 2: Nhập vào 1 xâu s
- Chuẩn hóa xâu s biết rằng: 1 xâu sau khi đã chuẩn hóa thì giữa các từ chỉ cách nhau 1 dấu cách
- In ra số lượng từ có trong xâu s
- Đếm số lượng các ký tự là chữ số trong xâu s
Nhập vào 1 xâu kí tự S từ bàn phím, rồi in ra xâu kí tự đó sau khi đã xoá hết các dấu cách thừa ở đầu, cuối xâu và giữa các từ trong xâu chỉ để lại 1 dấu cách BẰNG PYTHON Mọi người giúp em với ạ 😢😢😢