Luyện tập : Chuỗi - String

Bộ đề bài

# Bài tập Điểm Thời gian: Giới hạn bộ nhớ
1 Ký tự mới 10 (p) 1.0s 640M
2 Ký tự cũ 10 (p) 1.0s 640M
3 Chữ liền trước 10 (p) 1.0s 640M
4 Xâu đối xứng (Palindrom) 10 (p) 1.0s 640M
5 LL - Chữ cái 10 (p) 1.0s 1G
6 Vị trí zero cuối cùng 10 (p) 1.0s 256M
7 Xâu ký tự (THTA Quảng Nam 2022) 10 (p) 1.0s 256M
8 Chuyển đổi xâu 10 (p) 1.0s 256M
9 Chuyển hoá xâu 10 (p) 1.0s 256M
10 Nén xâu 10 (p) 1.0s 256M
11 Giải nén xâu 10 (p) 1.0s 256M
12 CSES - Palindrome Reorder | Sắp xếp lại xâu đối xứng 10 (p) 1.0s 512M

1. Ký tự mới

Điểm: 10 (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

2. Ký tự cũ

Điểm: 10 (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

3. Chữ liền trước

Điểm: 10 (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 \(ch\), in ra ký tự thường đứng liền trước chữ cái in hoa \(ch\).

Input

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

Output

  • In ra ký tự tương ứng theo đề bài.

Example

Test 1

Input
D 
Output
c

Test 2

Input
N 
Output
m

4. Xâu đối xứng (Palindrom)

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

Cho một xâu kí tự, hãy kiểm tra tính đối xứng của nó. Một xâu kí tự được gọi là xâu đối xứng nếu ta đọc xâu này từ trái sang phải hoặc từ phải sang trái là như nhau.

Input

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

Output

  • In ra \(YES\) nếu \(S\) là xâu đối xứng, ngược lại in ra \(NO\).

Constraints

  • \(1 \leq S.size() \leq 255\)

Example

Test 1

Input
abccba 
Output
YES

Test 2

Input
abcccc 
Output
NO

5. LL - Chữ cái

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

Bảng chữ cái tiếng Anh có 26 chữ cái từ A đến Z. Hãy lập trình để đếm số chữ cái tiếng Anh (cả chữ hoa và chữ thường) có trong xâu kí tự.

Input

  • Xâu kí tự có độ dài không quá \(1000\).

Output

  • Dòng duy nhất ghi số chữ cái tiếng Anh có trong xâu kí tự.

Example

Test 1

Input
**Tin hoc tre 2023**
Output
9

Test 2

Input
[email protected]
Output
15

6. Vị trí zero cuối cùng

Điểm: 10 (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ự \(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ố \(1\): \(000\ldots0011\ldots11\)

Hãy cho biết vị trí của ký tự số \(0\) cuối cùng trong dãy.

Input

  • Chứa xâu kí tự \(S\) (Độ dài của xâu \(S\leq10^7\) và luôn có ký tự số \(0\) và ký tự số \(1\))

Output

  • Một số nguyên dương là vị trí của ký tự số \(0\) cuối cùng trong dãy.

Example

Test 1

Input
0000011111 
Output
5

7. Xâu ký tự (THTA Quảng Nam 2022)

Điểm: 10 (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ự \(S\) có độ dài không quá \(255\).

Yêu cầu: In ra màn hình

  • Xâu \(S\).
  • Số lượng ký tự 2.
  • YES hoặc NO. Nếu in chữ YES nghĩa là kí tự đầu tiên trùng với kí tự cuối cùng. Nếu in chữ NO nghĩa là kí tự đầu tiên không trùng với kí tự cuối cùng.
  • Xâu đảo ngược của xâu \(S\).

Input

  • Dữ liệu vào nhập từ bàn phím một dòng duy nhất là xâu \(S\).

Output

In ra màn hình

  • Dòng thứ nhất là xâu \(S\).
  • Dòng thứ hai là số lượng ký tự 2.
  • Dòng thứ ba là YES hoặc NO.
  • Dòng cuối cùng là xâu đảo ngược của xâu \(S\).

Example

Test 1

Input
ab2022Cd
Output
ab2022Cd
3
NO
dC2202ba

8. Chuyển đổi xâu

Điểm: 10 (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

9. Chuyển hoá xâu

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

Cho xâu \(s\) gồm các kí tự latin (có cả chữ hoa lẫn chữ thường). Nhiệm vụ của bạn là chuyển hoá xâu \(s\) thành \(s'\) theo quy tắc sau:

  • Mỗi kí tự nguyên âm trong xâu \(s\) khi chuyển sang \(s'\) đều phải là chữ hoa.

  • Mỗi kí tự phụ âm trong xâu \(s\) khi chuyển sang \(s'\) đều phải là chữ thường.

(Ghi chú: Nguyên âm bao gồm những kí tự: \(\left\{u,e,o,a,i\right\}\))

Input

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

  • \(t\) dòng tiếp theo, mỗi dòng chứa một xâu \(s\) (biết rằng xâu \(s\) chứa không quá \(100\) ký tự)

Output

  • In ra đáp án cần tìm

Example

Test 1

Input
4
oikmOP
OOOOk
kkkaAA
ccMMA
Output
OIkmOp
OOOOk
kkkAAA
ccmmA

10. Nén xâu

Điểm: 10 (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

11. Giải nén xâu

Điểm: 10 (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

12. CSES - Palindrome Reorder | Sắp xếp lại xâu đối xứng

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

Cho một xâu, nhiệm vụ của bạn là sắp xếp lại các kí tự của nó sao cho xâu đó trở thành một xâu đối xứng. Xâu đối xứng là xâu khi đọc xuôi hoặc ngược đều như nhau.

Input

  • Một dòng duy nhất gồm một xâu độ dài \(n\) chỉ chứa các kí tự A-Z
  • \(1 \leq n \leq 10^6\)

Output

  • In ra một xâu đối xứng chứa các kí tự của xâu ban đầu. Bạn có thể in ra bất kỳ đáp án thỏa mãn nào. Nếu không có đáp án, in NO SOLUTION.

Example

Test 1

Input
AAAACACBA
Output
AACABACAA