Xâu ký tự - String

Bộ đề bài

# Bài tập Điểm Thời gian: Giới hạn bộ nhớ
1 Đếm số từ trong xâu 100 (p) 1.0s 100M
2 Số đảo 100 (p) 1.0s 1G
3 Đếm số lần xuất hiện 100 (p) 1.0s 256M
4 Xâu đối xứng liên tiếp dài nhất 100 (p) 1.0s 256M
5 Đếm ký tự 100 (p) 1.0s 1G
6 Đảo ngược 100 (p) 1.0s 256M
7 Tổng chữ số 100 (p) 1.0s 256M
8 In hoa 100 (p) 1.0s 256M
9 Xếp chữ(HSG9 QB 2015-2016) 100 (p) 1.0s 1G
10 Tìm kí tự 100 (p) 1.0s 1G
11 Khớp 100 (p) 1.0s 256M
12 Đếm ký tự 100 (p) 1.0s 1G
13 Đếm ký tự chữ số 100 (p) 1.0s 256M
14 Ký tự thứ K 100 (p) 1.0s 1G
15 Đếm ký tự 1 100 (p) 1.0s 1G
16 Đếm ký tự 2 100 (p) 1.0s 1G
17 Xuất hiện đầy đủ 100 (p) 1.0s 1G
18 Xâu đối xứng 100 (p) 1.0s 1G
19 In thường 100 (p) 1.0s 1G
20 Chuẩn hóa xâu 100 (p) 1.0s 1G
21 Đếm các loại chữ cái 100 (p) 1.0s 1G
22 Chèn xâu 100 (p) 1.0s 1G
23 Tiền mừng tuổi 100 (p) 1.0s 1G
24 Chênh lệch độ dài 100 (p) 1.0s 1G
25 So sánh tên 100 (p) 1.0s 1G
26 Ký tự đầu cuối 100 (p) 1.0s 1G
27 Ký tự chữ số lẻ 100 (p) 1.0s 1G

1. Đếm số từ trong xâu

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 100M Input: bàn phím Output: màn hình

Cho một xâu kí tự \(st\) chỉ bao gồm các kí tự thuộc [a...z] và dấu cách.

Yêu cầu

Biết xâu \(st\) có bao nhiêu từ?

Dữ liệu vào

Đọc vào xâu \(st\) có độ dài không quá \(10^6\) kí tự

Dữ liệu ra

Ghi ra một số nguyên là đáp án tìm được

Sample
Input
bai kiem tra
Output
3

2. Số đảo

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Cho số nguyên dương \(N\). Một số gọi là số đảo ngược của số \(N\) là số mà lấy các chữ số của \(N\) và viết lại theo thứ tự số sau viết trước. Ví dụ \(N = 123\) thì số đảo của \(N\)\(321\).

Yêu cầu

In ra số đảo ngược của số N bất kì

Ràng buộc

  • \(N < 10^{1000}\)

Dữ liệu vào

  • Ghi số nguyên dương \(N\)

Dữ liệu ra

  • Ghi ra số đảo ngược của \(N\), kể cả chữ số \(0\) đứng đầu của số đảo (nếu có)
Sample
Input
12345
Output
54321

3. Đếm số lần xuất hiện

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Bé Bo nhận được một mảnh giấy trên đó có ghi một đoạn ký tự chỉ có các ký tự latin in thường \(('a'..'z')\).

Yêu cầu

  • Bạn hãy cho biết trong xâu ký tự Bé Bo nhận được có bao nhiêu lần xuất hiện đoạn ký tự \('virus'\).

Input

  • Gồm một xâu kí tự có độ dài không quá \(250\) kí tự.

Output

  • Kết quả bài toán.
Sample
Input
hpvirushnviruss
Output
2

4. Xâu đối xứng liên tiếp dài nhất

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho 1 xâu s chỉ gồm các chữ cái in thường ('a'..'z'). Xâu x là xâu đối xứng khi đọc xuôi hay đọc ngược đều giống nhau (VD: abba, abbabba, a là xâu đối xứng còn abbc, ab, bbc thì không.

Yêu cầu

Tìm xâu con gồm các kí tự liên tiếp của s sao cho xâu con đó là xâu đối xứng và có độ dài lớn nhất.

Input

Một dòng duy nhất chứa xâu s. Dữ liệu đảm bảo độ dài của s \(\leq\) \(10^3\).

Ouput

Một số nguyên dương duy nhất là độ dài của xâu con tìm được thõa mãn yêu cầu.

Sample 1
Input
abcbcbdaabba
Output
5
Sample 2
Input
abcda
Output
1

5. Đếm ký tự

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: DKT.INP Output: DKT.OUT

Cho xâu \(S\) được lấy từ tập \('A'..'Z'\), \('a'..'z'\),\('0'..'9'\) và dấu cách. Xâu \(S\) có độ dài không quá \(10^5\) kí tự.

Yêu cầu

Đếm số lượng kí tự chữ cái in thường có trong xâu \(S\).

Dữ liệu vào

Dữ liệu được chứa trong tệp DKT.INP có cấu trúc như sau:

  • Dòng \(1\): Chứa xâu \(S\)

Dữ liệu ra

Dữ liệu được ghi vào tệp DKT.OUT theo cấu trúc như sau:

  • Dòng \(1\): Ghi số nguyên \(c\) là số lượng kí tự chữ cái in thường có trong xâu \(S\).
Sample
DKT.INP
Hom nay ngay 17 thAng 4 nam 2024
DKT.OUT
16

6. Đảo ngược

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho xâu ký tự \(st\) chỉ gồm các chữ cái la-tinh thường (‘a’ đến ‘z’) và có độ dài không quá \(100\) ký tự.
Yêu cầu: In ra xâu đảo ngược của xâu \(st\).

Dữ liệu vào

  • Một dòng chứa xâu \(st\).

Dữ liệu ra

  • Một dòng chưa xâu \(st\) đảo ngược.
Sample
Input
abcdfh
Output
hfdcba

7. Tổng chữ số

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho \(T\) số nguyên dương trong hệ thập phân.
Yêu cầu: Hãy in ra tổng các chữ số của mỗi số.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên dương \(T\) \((1 \leq T\leq 10^5)\)
  • \(T\) dòng tiếp theo, mỗi dòng chứa một số nguyên dương \(n\) ghi ở hệ thập phân \((1 \leq n\leq 10^{18})\).

Dữ liệu ra

  • Với mỗi bộ test, ghi ra trên một dòng một số là tổng các chữ số của số \(n\) tương ứng.
Sample
Input
5
467
23
13
6
256
Output
17
5
4
6
13

8. In hoa

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho xâu ký tự \(st\) chỉ gồm các chữ cái la-tinh thường (a đến z) và có độ dài không quá \(100\) ký tự.

Yêu cầu

Hãy ghi ra xâu “IN HOA” của xâu \(st\) (tức là các ký tự a đến z được thay thành các ký tự A đến Z tương ứng).

Dữ liệu vào

  • Một dòng chứa xâu \(st\).

Dữ liệu ra

  • Một dòng chứa xâu \(st\) "IN HOA".
Sample
Input
abcdfh
Output
ABCDFH

9. Xếp chữ(HSG9 QB 2015-2016)

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Cuối giờ học cô giáo mầm non sắp xếp \(N\) tấm bìa có ghi các chữ cái lấy trong tập \([’A’..’Z’]\), sắp xếp theo từng loại chữ cái và đếm số lượng của chúng. (với \(1 ≤ N ≤ 400000\)). Các em hãy giúp cô giáo thực hiện công việc trên.

Yêu cầu

Hãy đếm số lượng tấm bìa theo các chữ cái.

Dữ liệu vào

  • Dòng \(1\):Ghi số nguyên dương \(N\) là số lượng tấm bìa.
  • Dòng \(2\): Ghi \(N\) chữ cái là ký hiệu của \(N\) tấm bìa.

Dữ liệu ra

  • Dữ liệu được ghi trên nhiều dòng, dòng thứ \(i\) ghi ký hiệu của tấm bìa \(S_i\) và số lượng của nó là \(T_i\). \(S_i\)\(T_i\) được viết liền nhau.
Sample
Input
6
A A B B C C
Output
A2
B2
C2

10. Tìm kí tự

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Cho một xâu \(st\) gồm các ký tự từ \(a\)...\(z\) có độ dài tối đa không quá \(255\) kí tự.

Yêu cầu

Hãy tìm tất cả các kí tự xuất hiện trong xâu St ít nhất hai lần.

Dữ liệu vào

  • Dòng \(1\): Ghi các ký tự của xâu \(st\), các kí tự được viết liền nhau.

Dữ liệu ra

Dòng \(1\): Nếu không tìm được kí tự thỏa mãn yêu cầu thì ghi ra số \(-1\). Ngược lại thì ghi các kí tự tìm được theo thứ tự tăng dần của mã ASCII, các kí tự ghi liền nhau.

Sample
Input
hchcsucaaf
Output
ach
Sample
Input
hkcsuaf
Output
-1

11. Khớp

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho số nguyên dương \(X\) ghi trong hệ thập phân. Một số được gọi là khớp nếu nó có chữ số đầu và chữ số cuối giống nhau.

Dữ liệu vào

  • Gồm nhiều dòng, mỗi dòng chứa một số nguyên dương \(X\) ghi ở hệ thập phân.

Dữ liệu ra

  • Ứng với mỗi số nguyên dương \(X\), in ra trên một dòng là YES nếu \(X\) thoả mãn là một khớp, ngược lại in ra NO.
Sample
Input
12345
123541
Output
NO
YES

12. Đếm ký tự

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Cho xâu ký tự \(S\) chứa các ký tự \(['0'..'9'],['a'..'z'],['A'..'Z']\) và ký tự trắng, hãy đếm số lượng ký tự 0 có trong xâu.

Input

Dòng duy nhất chứa xâu \(S(|S| \leq 10^6)\).

Output

Dòng duy nhất chứa số lượng ký tự 0

Sample
Input
weijth3487uhr438uth0943
Output
1

13. Đếm ký tự chữ số

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

14. Ký tự thứ K

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Cho chuỗi \(st\)\(n\) ký tự gồm các ký tự in thường, in hoa, chữ số và dấu cách và số nguyên dương \(k\).
Hãy in ra ký tự thứ \(k\).

Input

  • Dòng thứ nhất chứa số nguyên \(n\)\(k\).\((n \leq 1000)\)
  • Dòng thứ hai chứa chuỗi ký tự \(st\)

Output

In ra ký tự thứ \(k\).

Sample
Input
13 3
khactrung1912
Output
a

15. Đếm ký tự 1

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Nhập xâu ký tự \(st\) chỉ chứa các ký tự in thường, in hoa và chữ số. hãy kiểm tra xem xâu st có bao nhiêu ký tự.

Input

Xâu ký tự \(st\).\((|st| \leq 10^5)\)

Output

Số lượng ký tự của xâu \(st\).

Question
Input
khactrung1912
Output
13

16. Đếm ký tự 2

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Nhập xâu ký tự \(st\) chỉ chứa các ký tự in thường, in hoa, chữ số và dấu cách. hãy kiểm tra xem xâu st có bao nhiêu ký tự.

Input

Xâu ký tự \(st\).\((|st| \leq 10^5)\)

Output

Số lượng ký tự của xâu \(st\).

Question
Input
khactrung1912
Output
13

17. Xuất hiện đầy đủ

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Cho một xâu ký tự \(st\) chỉ chứa các ký tự in thường. Hãy kiểm tra xem xâu \(st\) có đầy đủ \(26\) ký tự chữ cái hay không.

Input

Chứa xâu \(st(|st| \leq 1000)\).

Output

YES nếu xâu \(st\) chứa đủ \(26\) ký tự và NO nếu ngược lại.

Sample
Input
khactrung1912
Output
NO
Sample
Input
abcdefghijklmnopqrstuvwxyz
Output
YES

18. Xâu đối xứng

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Một xâu ký tự được gọi là đối xứng nếu đọc xuôi và đọc ngược đều giống nhau.
Cho xâu ký tự \(st\) có độ dài \(n\) chỉ gồm các chữ cái Latinh HOA (A đến Z).
Hãy cho biết xâu \(st\) có phải xâu đối xứng không?

Dữ liệu vào

Chứa xâu \(st\) \((|st| \leq 1000)\)

Dữ liệu ra

In YES nếu \(st\) là xâu đối xứng và NO nếu không phải

Sample
Input
uwu
Output
YES

19. In thường

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

20. Chuẩn hóa xâu

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

21. Đếm các loại chữ cái

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

22. Chèn xâu

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

23. Tiền mừng tuổi

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

24. Chênh lệch độ dài

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Cho hai xâu \(s\)\(t\). Hãy in ra chênh lệch độ dài của hai xâu.

Input

  • Dòng đầu tiên chứa xâu ký tự \(s\).
  • Dòng thứ hai chứa xâu ký tụ \(t\).

Độ dài hai xâu không vượt quá \(1000\). Các xâu bao gồm ký tự in thường và dấu cách.

Output

In ra chênh lệch độ dài của hai xâu.

Sample
Input
chuyenvonguyengiap
chuyenthanglong
Output
3

25. So sánh tên

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Nhập họ tên của hai người vào hai biến xâu rồi đưa ra màn hình xâu dài hơn, nếu bằng nhau thì đưa ra xâu nhập sau.

Input

  • Dòng đầu tiên chứa tên của người đầu tiên
  • Dòng thứ hai chứa tên của người thứ hai

Độ dài hai xâu không vượt quá \(1000\). Các xâu bao gồm ký tự in thường và dấu cách.

Output

Một xâu là kết quả của bài toán.

Sample
Input
nguyen khac trung
vo ngoc sinh
Output
nguyen khac trung

26. Ký tự đầu cuối

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Nhập vào một xâu \(st\). Hãy tìm ký tự đầu tiên, cuối cùng của xâu \(st\). Kiểm tra xem hai ký tự ấy có bằng nhau hay không?.

Input

  • Một dòng duy nhất chứa xâu \(st\).

Độ dài xâu \(st\) không vượt quá \(1000\). Xâu bao gồm ký tự in thường và dấu cách.

Output

In trên một dòng lần lượt ký tự đầu tiên, ký tự cuối cùng. Tiếp theo, in ra số \(0\) nếu hai ký tự ấy khác nhau, ngược lại in số \(1\).

Sample
Input
nguyen khac trung
Output
n g 0

27. Ký tự chữ số lẻ

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Nhập vào một xâu \(st\). Hãy tìm các ký tự chữ số lẻ xuất hiện trong xâu theo thứ tự xuất hiện của chúng.

Input

  • Một dòng duy nhất chứa xâu \(st\).

Độ dài xâu \(st\) không vượt quá \(10^5\). Xâu bao gồm ký tự in thường, ký tự số.

Output

Dòng đầu tiên chứa số lượng ký tự chữ số lẻ trong xâu.
Dòng thứ hai ghi ra các ký tự chữ số lẻ theo thứ tự xuất hiện của nó trong xâu. Mỗi ký tự cách nhau một dấu cách.

Sample
Input
19122007
Output
4 
1 9 1 7