String

Bộ đề bài

# Bài tập Điểm Thời gian: Giới hạn bộ nhớ
1 Cánh diều - FULLNAME - Nối họ, đệm, tên 100 (p) 1.0s 256M
2 Cánh Diều - DDMMYYYY - Ngày tháng năm 100 (p) 1.0s 256M
3 Cánh Diều - LEN - Độ dài xâu 100 (p) 1.0s 256M
4 Chênh lệch độ dài 100 (p) 1.0s 256M
5 Đếm dấu cách 100 (p) 1.0s 256M
6 Ký tự cũ 100 (p) 1.0s 640M
7 Ký tự mới 100 (p) 1.0s 640M
8 Hoa thành thường 100 (p) 1.0s 256M
9 Chuyển đổi xâu 100 (p) 1.0s 256M
10 CHUYỂN CHỮ CÁI ĐẦU SANG IN HOA 100 (p) 1.0s 256M
11 Trung bình cộng của chuỗi 100 (p) 1.0s 256M
12 Chữ số lớn nhất (THT'14; HSG'17) 100 (p) 1.0s 256M
13 Đếm chữ số lẻ (THT TP 2019) 100 (p) 1.0s 256M
14 Đếm ký tự (HSG'19) 100 (p) 1.0s 256M
15 Xâu Palindromes 100 (p) 5.0s 256M
16 Mã Hóa Xâu 100 (p) 1.0s 256M
17 Cánh diều - SUBSTR - Đếm số lần xuất hiện xâu con 100 (p) 1.0s 256M
18 Nén xâu 100 (p) 1.0s 256M
19 Giải nén xâu 100 (p) 1.0s 256M
20 Cường và Thiên An 100 (p) 1.0s 256M

1. Cánh diều - FULLNAME - Nối họ, đệm, tên

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

Cho 3 dòng, mỗi dòng ghi một xâu kí tự chỉ gồm các kí tự latin viết thường có thể chứa dấu cách lần lượt thể hiện Họ, Đệm, Tên của một người. Hãy in ra một dòng gồm họ tên đầy đủ của người đó (xem thêm ví dụ minh hoạ).

Input

  • Gồm ba dòng, mỗi dòng ghi xâu kí tự; dòng 1 là Họ; dòng 2 là Đệm; dòng 3 là Tên.

Output

  • Gồm 1 dòng ghi tên theo cấu trúc Họ Đệm Tên

Example

Test 1

Input
Phan
Dinh
Thuc 
Output
Phan Dinh Thuc

2. Cánh Diều - DDMMYYYY - Ngày tháng năm

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

Cho ngày tháng năm ở định dạng \(DD/MM/YYYY\) được nhập vào từ bàn phím. Hãy In ra theo cấu trúc: "Ngay \(DD\) thang \(MM\) nam \(YYYY\)" -- xem thêm ví dụ minh hoạ.

Input

  • Một dòng ghi ngày tháng theo đúng định dạng \(DD/MM/YYYY\).

Output

  • In ra một dòng ghi thông báo về ngày, tháng, năm theo mẫu.

Example

Test 1

Input
15/12/2022
Output
Ngay 15 thang 12 nam 2022

3. Cánh Diều - LEN - Độ dài xâu

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

Cho một xâu kí tự chỉ gồm các kí tự latin viết thường, hoa và dấu cách. Hãy đếm xem trong xâu có bao nhiêu kí tự (độ dài xâu).

Input

  • Một dòng ghi xâu kí tự, có độ dài không quá \(10^6\).

Output

  • Một số nguyên là độ dài xâu.

Example

Test 1

Input
I love Python 
Output
13

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

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

Cho 2 chuỗi kí tự \(a\) và \(b\). Hãy in ra độ chênh lệnh độ dài của \(2\) chuỗi.

Input

  • Dòng thứ nhất là chuỗi kí tự a.
  • Dòng thứ hai là chuỗi kí tự b.

Output

  • Gồm một dòng duy nhất là kết quả cần tìm.

Lưu ý: Chuỗi nhập vào có thế có dấu khoảng trống (dùng getline).

Example

Test 1

Input
zzzzzz aa
ssssss aaaaaa 
Output
4

5. Đếm dấu cách

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

Cho một chuỗi kí tự \(S\) có \(n\) kí tự \((n≤100)\). Hãy đếm số kí tự khoảng trắng trong chuỗi đó.

Input

  • Gồm một dòng duy nhất là chuỗi kĩ tự \(S\).

Output

  • In ra số lượng kí tự khoảng trắng của \(S\).

Example

Test 1

Input
kid  1   4   1  2 
Output
10

6. Ký tự cũ

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

Viết chương trình nhập vào một ký tự thường, in ra ký tự in hoa tương ứng.

Input

  • Một ký tự là chữ cái in thường.

Output

  • In ra ký tự hoa tương ứng.

Example

Test 1

Input
a 
Output
A

7. Ký tự mới

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

Viết chương trình nhập vào một ký tự in hoa, in ra ký tự thường tương ứng.

Input

  • Một ký tự là chữ cái in hoa.

Output

  • In ra ký tự thường tương ứng.

Example

Test 1

Input
A 
Output
a

8. Hoa thành thường

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

Cho một chuỗi kí tự gồm \(n\)n kí tự bất kì \((n≤100)\). Hãy đổi tất cả chữ hoa có trong chuỗi thành chữ thường. Xuất chuỗi ra màn hình.

Input

  • Gồm một dòng duy nhất là một chuỗi kí tự

Output

  • In chuỗi đã đổi ra màn hình

Example

Test 1

Input
4I1K2D14Ti 
Output
4i1k2d14ti

9. Chuyển đổi xâu

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

Thầy Hải được trao \(1\) bức thư tình từ \(1\) bạn nữ xinh đẹp giấu tên, nhưng trong bức thư, bạn nữ cố tình ghi lẫn lộn giữa chữ hoa, chữ thường và yêu cầu thầy hãy chuyển ngược lại (chữ hoa thành chữ thường và ngược lại). Thầy Hải rất thích, nhưng thầy đang bận ôn thi cho học sinh nên không muốn mất thời gian để chuyển đổi, các bạn hãy viết chương trình giúp thầy nhé.

Input

  • Gồm \(1\) dòng duy nhất là xâu kí tự cần chuyển đổi. \((1≤length(S)≤100)\).

Output

  • Xâu đã chuyển đổi.

Example

Test 1

Input
dEAR hAI 
Output
Dear Hai

10. CHUYỂN CHỮ CÁI ĐẦU SANG IN HOA

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

11. Trung bình cộng của chuỗi

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

Cho một xâu \(S\) gồm những kí tự latin thường. Hãy tính trung bình cộng của xâu \(S\).

Biết rằng: Mỗi kí tự trong latin thường, đều tương ứng với một số thập phân trong bảng ASCII.

Input

  • Dòng thứ nhất chứa số \(t(1\le t\le 30)\) - Thể hiện số testcase

  • \(t\) dòng tiếp theo, mỗi dòng chứa một xâu \(S\) có độ dài không quá \(10^6\).

Output

  • Ứng với mỗi testcase, in ra đáp án cần tìm (chính xác đến chữ số thập phân thứ \(6\))

Example

Test 1

Input
2
abc
aaa
Output
98.000000
97.000000

12. Chữ số lớn nhất (THT'14; HSG'17)

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

Nhập vào từ bàn phím một số nguyên dương \(n\) \((n≤10^{16})\). Hãy tìm và in ra màn hình chữ số lớn nhất của số \(n\).

Input

  • Số nguyên dương \(n\)

Output

  • Kết quả của bài toán

Example

Test 1

Input
70128 
Output
8

13. Đếm chữ số lẻ (THT TP 2019)

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

Nhập vào từ bàn phím một xâu kí tự \(S\) (có không quá \(255\) kí tự) chỉ chứa các kí tự chữ số từ \(0\) đến \(9\). Hãy đếm trong xâu \(S\) có bao nhiêu kí tự chữ số lẻ và in kết quả ra màn hình

Input

  • Một xâu kí tự \(S\)

Output

  • Kết quả của bài toán

Example

Test 1

Input
2019 
Output
2

14. Đếm ký tự (HSG'19)

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

Hãy viết chương trình thực hiện nhiệm vụ sau:

Nhập vào từ bàn phím một xâu kí tự \(S\), hãy in ra số kí tự chỉ xuất hiện đúng 1 lần trong xâu \(S\).

Input

  • Dòng đầu tiên và duy nhất chứa 1 xâu \(S\) (chỉ chứa các kí tự trong tập \(\{a,b,\dots z\}\), không chứa dấu cách) \((|S| \leq 255)\).

Output

  • In ra số kí tự chỉ xuất hiện đúng 1 lần trong xâu \(S\).

Example

Test 1

Input
abbacdmedc 
Output
2

15. Xâu Palindromes

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

Pari có một người bạn rất thích số đối xứng. Số đối xứng là số mà viết xuôi hay viết ngược đều như nhau. Ví dụ: 12321, 100001 và 1 là những số đối xứng, trong khi 112 và 1021 thì không phải.
Pari cũng đang cố gắng yêu thích chúng, nhưng chỉ có những người thật đặc biệt và tài năng thì mới có thể hiểu được vẻ đẹp đằng sau những con số đối xứng. Pari yêu những số nguyên có chiều dài chẵn (tức là những số có số chữ số là số chẵn), nên cô đã thử xem xét rất nhiều số đối xứng có chiều dài chẵn (như số 11 có 2 chữ số hay 122221 có 6 chữ số) mong tìm ra điều gì đó ở chúng.
Giờ thì, Pari yêu cầu bạn viết một chương trình như sau: nhập vào một số nguyên rất lớn n và in ra số dương đối xứng có độ dài chẵn thứ n?

Input:

∙ Dòng duy nhất của input chứa số 1 nguyên dương duy nhất n có quá 100000 chữ số.

Output:

∙ In ra số đối xứng có độ dài chẵn thứ n.

Test ví dụ 1:

Input:

1

Output:

11

Test ví dụ 2:

Input:

10

Output:

1001

. Sub1 : n có tối đa 3 chữ số.

16. Mã Hóa Xâu

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

Hân thích học những thuật toán đỉnh cao và mã hóa là một thuật toán như vậy. Ngày nọ, Hân nghĩ ra thuật toán mã hóa của riêng mình: Mỗi chuỗi sẽ quy về số kí tự có trong chuỗi đó. Cho một dãy gồm các chuỗi kí tự và cách nhau bởi dấu cách. Hãy áp dụng thuật toán của Hân để mã hóa dãy kí tự đã cho.

Input

  • Một dòng duy nhất gồm các chuỗi kí tự

Output

  • In ra một dãy số là dãy mã hóa của các chuỗi kí tự.

Constraints

  • Số lượng chuỗi được cho \(\leq 10\)

Example

Test 1

Input
Happy New Year 2021
Output
5 3 4 4

Test 1

Input
Le Cong Quoc Han
Output
2 4 4 3

17. Cánh diều - SUBSTR - Đếm số lần xuất hiện xâu con

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

Một xâu \(A\) được gọi là xâu con của xâu \(B\) nếu các kí tự của xâu \(A\) được xuất hiện liên tiếp trong xâu \(B\). Ví dụ \(“apple”\), \(“appl”\), \(“pple”\), \(“ple”\) là xâu con của xâu \(“apple”\); nhưng xâu \(“ppal”\) không là xâu con của xâu \(“apple”\).

Yêu cầu: Cho xâu \(B\) và xâu \(A\); Đếm số lần xuất hiện không giao nhau của xâu \(A\) trong xâu \(B\).

Input

  • Dòng đầu ghi xâu \(B\).

  • Dòng thứ hai ghi xâu \(A\).

Các xâu chỉ gồm kí tự latin viết thường không chứa dấu cách. Các xâu có độ dài không quá \(100\).

Output

  • Một số nguyên là số lần xuất hiện của xâu \(A\) trong \(B\)

Example

Test 1

Input
aaa
aa
Output
1

18. Nén xâu

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

Một xâu ký tự có thể nén lại thành một xâu mới bằng cách nén các ký tự giống nhau đứng cạnh nhau. Ví dụ trong xâu \(aaaa\) sẽ nén thành \(4a\). Hãy lập trình để nén một xâu ký tự thường theo cách trên.

Input

  • Một xâu các ký tự là chữ cái thường có tối đa \(10^5\) ký tự.

Output

  • Một xâu ký tự sau khi nén.

Example

Test 1

Input
mmaabbbeeeezh 
Output
2m2a3b4ezh

19. Giải nén xâu

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

Trong máy tính, để tiết kiệm bộ nhớ, người ta thường tìm cách nén dữ liệu. Trong việc nén văn bản, ta sư dụng một phương pháp đơn giản đươc mô tả thông qua ví dụ sau:

Ví dụ:

Với xâu ký tự: "aaaabbb" sẽ được nén lại thành xâu "4a3b". Với xâu ký tự "aaab" sẽ được nén lại thành "3ab".

Cho một xâu \(S\) gồm các ký tự thuộc tập \('a'...'z'\). Gọt \(St\) là xâu nén của xâu \(S\) theo phương pháp được mô tả như trên. Xâu \(St\) gồm \(N\) ký tự thuộc tập các ký tự \('a'...'z'\), \('0',...'9'\)

Hãy giải nén xâu \(St\) để được xâu gốc \(S\).

Input

  • Một xâu ký tự \(St\).

Output

  • Một xâu ký tự \(S\) sau khi giải nén.
  • Đề đảm bảo số lượng kí tự sau khi giải nén không quá \(10^{7}\).

Constraints

  • \(1 \leq N \leq 10000\)

Example

Test 1

Input
2m2a3b4ezh 
Output
mmaabbbeeeezh

20. Cường và Thiên An

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

Ngày tựu trường năm học mới đã đến, toàn thể học sinh trường THPT chuyên Nguyễn Bỉnh Khiêm đều tất bật trước sân trường để chuẩn bị cho phần thi dân vũ của khối chuyên mình, chỉ riêng Thiên An vẫn nhiệt tình níu chân Hùng Cường trong phòng vi tính để giúp mình cài đặt IDE Code::Blocks. Vì máy tính của Thiên An vẫn còn sử dụng hệ điều hành Windows 98 nên Hùng Cường phải mất rất nhiều công sức để có thể chạy thành công file setup. Thấy đàn anh nhễ nhại mồ hôi, Thiên An rất xúc động và áy náy, cậu quyết định giúp đàn anh gọi một ly đồ uống thật mát lạnh để xua đi sự mệt mỏi. Đang nhìn ngang liếc dọc tìm cách thì Thiên An bỗng thấy một số điện thoại trên tập hồ sơ của cô chủ nhiệm, với chú thích bên cạnh: "Dùng trong trường hợp khẩn cấp." Cậu lập tức nhấc máy quay số và lớn tiếng nói vào micro: "Mang ngay cho tôi một ly trà đào cam sả."

  • Nhầm máy rồi. Anh có biết đang nói chuyện với ai không?
  • Không.
  • Tôi là Phan Văn Chương, Bí thư Chi bộ, Hiệu trưởng nhà trường.
  • Thế anh có biết tôi là ai không? - An thét lớn.
  • Không.
  • Tốt - An thở phào và cúp máy.

Nhưng thật không may cho cậu, Hùng Cường ngồi cạnh dù đang miệt mài với chiếc máy tính vẫn có thể nghe rành rọt đầu đuôi câu chuyện. Nắm thóp được Thiên An, Hùng Cường yêu cầu cậu phải giải quyết một bài toán do Cường đưa ra hoặc phải đưa cho Cường \(500,000\) đồng, nếu không thì chuyện này sẽ được tường trình đầy đủ đến Ban giám hiệu nhà trường. Cường khởi động Code::Blocks và tạo một file văn bản mới, vẽ vào trong đó một "bức tranh" hình chữ nhật kích thước \(N\) hàng và \(M\) cột. "Bức tranh" của Cường chỉ bao gồm hai ký tự . và * sao cho các ký tự * tạo ra những hình chữ nhật con không giao nhau (thậm chí mỗi hình chữ nhật con này đều không tiếp xúc với góc hoặc cạnh của những hình chữ nhật con khác). Cường thách đố An phải đếm được số lượng hình chữ nhật con có trong "bức tranh" của mình. Thiên An vừa không có đủ tiền, vừa không có đủ khả năng để đếm vì "bức tranh" của Hùng Cường quá lớn, vì vậy cậu đã cầu cứu các bạn cùng lớp viết một chương trình tự động tính ra số hình chữ nhật cần tìm giúp mình. Các bạn hãy giúp Thiên An thoát nạn nhé!


Định dạng input

Dòng đầu chứa hai số nguyên dương \(N\) và \(M\) \((1\leq N, M\leq 100)\).

Mỗi dòng trong \(N\) dòng tiếp theo chứa \(M\) ký tự (. hoặc *) thể hiện "bức tranh" Hùng Cường vẽ ra.


Định dạng output

Ghi ra một số nguyên duy nhất là số lượng hình chữ nhật đếm được.


Ví dụ

Sample input 1

6 7
***....
***..**
.....**
.***.**
.***...
.***...

Sample output 1

3

Sample input 2

3 3
*.*
...
*.*

Sample output 2

4

Sample input 3

1 10
.*.**.***.

Sample output 3

3

Ràng buộc

  • Subtask 1 (10 điểm): Tất cả các hình chữ nhật con đều chỉ có đúng một ký tự *.
  • Subtask 2 (15 điểm): Dữ liệu thỏa mãn \(N=1\).