Cho một xâu ký tự. Đếm số lượng các ký tự số, số lượng các ký tự chữ cái. Ví dụ dữ liệu vào/ra:
INPUT: Ky thi hsg nam hoc 2022 2023
OUTPUT: So ky tu so: 8
So ky tu chu cai: 14
Một xâu được gọi là chuẩn nếu đầu và cuối xâu không có ký tự trống, đồng thời
trong xâu không có 2 ký tự trống kề liền. Cho xâu S không quá 500 kí tự.
Yêu cầu: - Chuẩn hóa xâu đã nhập.
- Tìm số lượng kí tự chữ số trong xâu.
Dữ liệu vào: Xâu kí tự S.
Dữ liệu ra: Dòng 1: In ra xâu đã chuẩn hóa.
Dòng 2: In ra số lượng kí tự chữ số.
viết chương trình nhập vào 1 xâu và 1 ký tự đếm số lượng ký tự này trong xâu đã nhập
#include <bits/stdc++.h>
using namespace std;
string st;
char ktu;
int dem,i,d;
int main()
{
getline(cin,st);
cin>>ktu;
d=st.length();
dem=0;
for (i=0; i<=d-1; i++)
if (st[i]==ktu) dem++;
cout<<dem;
return 0;
}
Một xâu được gọi là chuẩn nếu đầu và cuối xâu không có ký tự trống, đồng thời
trong xâu không có 2 ký tự trống kề liền. Cho xâu S không quá 500 kí tự.
Yêu cầu: - Chuẩn hóa xâu đã nhập.
- Tìm số lượng kí tự chữ số trong xâu.
Dữ liệu vào: Xâu kí tự S.
Dữ liệu ra: Dòng 1: In ra xâu đã chuẩn hóa.
Dòng 2: In ra số lượng kí tự chữ số.
Để chuẩn hóa xâu kí tự, ta sẽ loại bỏ các ký tự trống ở đầu và cuối xâu, sau đó loại bỏ các ký tự trống kề liền.
Để tìm số lượng kí tự chữ số trong xâu, ta sẽ duyệt qua từng ký tự của xâu và kiểm tra xem ký tự đó có phải là chữ số không.
Code Python để thực hiện yêu cầu đề bài như sau:
pythondef chuan_hoa_xau(s): # Xóa khoảng trắng ở đầu và cuối xâu s = s.strip() # Loại bỏ khoảng trắng kề nhau i = 0 while i < len(s) - 1: if s[i] == ' ' and s[i+1] == ' ': s = s[:i] + s[i+1:] else: i += 1 return s def dem_chu_so(s): count = 0 for c in s: if c.isdigit(): count += 1 return count # Đọc xâu kí tự từ input s = input() # Chuẩn hóa xâu s_chuan = chuan_hoa_xau(s) # Tìm số lượng kí tự chữ số so_luong_chu_so = dem_chu_so(s_chuan) # In ra kết quả print(s_chuan) print(so_luong_chu_so)Ví dụ:
Input:
csharpThis is an example 1234 string .Output:
csharpThis is an example 1234 string. 4Xâ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++
#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ứ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++
Đế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;
}
Bài 5: Viết chương trình cho phép người dùng nhập vào từ bàn phím một xâu ký tự s gồm cả các kí tự chữ và các kí tự số. Hãy tách s thành 2 xâu con: s1 chỉ chứa các ký tự số, s2 chỉ chứa các ký tự chữ
uses crt;
var s,s1,s2:string;
i,d:integer;
begin
clrscr;
readln(s);
s1:=''
s2:=''
d:=length(s);
for i:=1 to d do
begin
if s[i] in ['0'..'9'] then s1:=s1+s[i];
if (s[i] in ['a'..'z']) or (s[i] in ['A'..'Z']) then s2:=s2+s[i];
end;
writeln('Xau chua cac ki tu so la: ',s1);
writeln('Xau chua cac ki tu chu la: ',s2);
readln;
end.
cho một sâu kí tự St có độ dài tối đa 255 ký tự các ký tự được lấy từ tập'a'..'z''A'..'Z''0'..'9;
yêu cầu tách sâu st thành hai sâu st1 gồm các ký tự chữ cái xâu st2 gồm các ký tự chữ số các ký tự trong st1 và st2 vẫn được giữ nguyên thứ tụ từ trái sang phải
giúp mình với ạ
Cho một xâu kí tự S chỉ toàn kí tự số 0 và 1. Biết rằng các kí tự số 0 đứng trước các ký tự số : 00....0011.....11.
Yêu cầu: Hãy cho biết vị trí của ký tự số 0 cuối cùng trong dãy.
Dữ liệu vào:
Chứa xâu kí tự S (Độ dài của xâu S≤107 và luôn có ký tự số 0 và ký tự số 1)
Kết quả:
Một số nguyên dương là vị trí của ký tự số 0 cuối cùng trong dãy.
Ví dụ
Input
Copy
0000011111
Output
Copy
Lưu ý:Dùng C++
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.
viết chương trình nhập 1 xâu từ bàn phím. a) Hãy xóa tất cả các cách ký tự ở đầu xâu b) Hãy xóa tất cả các cách ký tự ở đầu xâu c) Hãy xóa tất cả các cách ký tự ở giữa các từ (giữa các từ chỉ có 1 dấu cách ) d) Đếm các chữ cái có trong xâu e) Đếm các chữ số ở xâu chuỗi. Trong màn hình kết quả
#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;
}