Ôn tập string

Bộ đề bài

# Bài tập Điểm Thời gian: Giới hạn bộ nhớ
1 Độ tương đồng của chuỗi 10 (p) 1.0s 1G
2 Tính Toán 20 (p) 1.0s 512M
3 Xâu giảm dần 10 (p) 1.0s 256M
4 Đếm kí tự (HSG9-2023, Đà Nẵng) 10 (p) 1.0s 256M
5 Từ đại diện (HSG'21) 20 (p) 1.0s 640M
6 [HSG 9] Số anh cả 20 (p) 1.0s 256M
7 [Xâu ký tự] Số lớn nhất xuất hiện trong xâu 20 (p) 1.0s 256M
8 Chuỗi liên tục 20 (p) 1.0s 256M
9 String #4 20 (p) 1.0s 256M

1. Độ tương đồng của chuỗi

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

Conan đang trong một vụ án cực kì hóc búa, đã có đến 2 vụ án mạng xảy ra. Tại hiện trường 2 vụ án đều để lại dòng chữ kì lạ. Có vẻ như đó chính là gợi ý mà hung thủ để lại. Hung thủ dường như đang cố thách thức vị thám tử lừng danh của chúng ta. Bằng tài năng suy luận tài tình của mình, Conan đã khám phá đã ra được gợi ý của hung thủ chính là sự tương đồng của 2 dòng chữ đó. Tuy nhiên các dòng chữ rất dài, Conan giỏi suy luận nhưng lại không giỏi lập trình. Bạn là một lập trình viên giỏi, bạn hãy giúp Conan nhé.

Yêu cầu: Cho 2 chuỗi kí tự \(a\)\(b\). Hãy xác định xem chuỗi \(a\)\(b\) giống nhau bao nhiêu kí tự?

Input

  • Dòng thứ nhất là chuỗi kí tự \(a (1 \leq |a| \leq 10^{5})\).
  • Dòng thứ hai là chuỗi kí tự \(b\) \((1 \leq |b| \leq 10^{5})\).
  • Các chuỗi chỉ gồm các kí tự từ \(\texttt{a}\) \(\rightarrow\) \(\texttt{z}\), \(|x|\) là số lượng ký tự của chuỗi \(x\).

Output

  • Gồm một dòng duy nhất là số lượng kí tự giống nhau.

Example

Test 1

Input
aaabb
baa
Output
3
Note

Cả 2 chuỗi đều có 2 kí tự a và 1 kí tự b. Vậy kết quả in ra 3.

2. Tính Toán

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

Cho một biểu thức số học đơn giản chỉ chứa các phép cộng \(+\) và trừ \(-\), trong đó các toán hạng là các số nguyên bất kỳ. Biểu thức được nhập vào dưới dạng chuỗi, bao gồm các khoảng trắng giữa các toán tử và toán hạng.
Yêu cầu: Cho một biểu thức dưới dạng chuỗi \(s\) (có độ dài không vượt quá \(10^3\)). Hãy tính toán giá trị của biểu thức và xuất kết quả dưới dạng một số nguyên duy nhất. Đảm bảo rằng kết quả không vượt quá giới hạn của kiểu dữ liệu long long.

Input

  • Chứa một biểu thức số học dưới dạng chuỗi có tối đa \(1000\) ký tự, chỉ bao gồm các số nguyên, các phép cộng \(+\), phép trừ \(-\), và khoảng trắng.

Output

  • Một số nguyên duy nhất biểu thị kết quả của biểu thức

Example

Test 1

Input
12 + 18 - 16
Output
14

3. Xâu giảm dần

Điểm: 10 (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 yêu cầu sau:

Trộn hai xâu ký tự và sắp xếp theo chiều giảm dần của các chữ cái tiếng Anh (phân biệt chữ hoa và chữ thường) sau khi đã loại bỏ các ký tự không phải là chữ cái.

Lưu ý: Theo thứ tự sắp xếp, các chữ cái in hoa sẽ đứng trước các chữ cái in thường (ví dụ: Z đứng trước a).

Input

  • Dòng đầu tiên chứa xâu ký tự thứ nhất.
  • Dòng thứ hai chứa xâu ký tự thứ hai.

Output

  • Một dòng duy nhất là xâu kết quả sau khi đã trộn, lọc và sắp xếp theo yêu cầu.

Constraints

  • Độ dài mỗi xâu không quá \(10^5\) ký tự.
  • Các ký tự trong xâu bao gồm chữ cái, chữ số và các ký hiệu đặc biệt khác.

Example

Test 1

Input
1a2c3b4d5f6e7XZY
yzx8FEDCBA9
Output
ZYXFEDCBAzyxfedcba

4. Đếm kí tự (HSG9-2023, Đà Nẵng)

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

Yêu cầu: Nhập từ bàn phím một xâu kí tự \(S\). Hãy đếm và in ra màn hình số lượng kí tự xuất hiện ít nhất 2 lần trong xâu kí tự \(S\) (có phân biệt chữ hoa và chữ thường).

Scoring

  • Xâu S có không quá 255 kí tự.

Example

Test 1

Input
abcbMbdmccccd
Output
3
Note
  • Có 3 kí tự xuất hiện ít nhất 2 lần trong xâu S là: b, c và d

5. Từ đại diện (HSG'21)

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

    
Trong thao tác tìm kiếm các tập tin hoặc các từ trong một nội dung văn bản đã soạn thảo, ... người ta phải sử dụng một từ dùng làm từ khóa hay còn gọi là từ đại diện nhằm để so sánh và tìm kiếm kết quả. Một từ trong tin học được xem là một xâu kí tự không chứa kí tự trống.

    
Từ đại diện có thể chứa một vài ký tự dấu hỏi ('?') mà mỗi kí tự dấu hỏi sẽ đại diện cho một kí tự bất kì khác kí tự trống (dấu cách). Chẳng hạn:

Từ đại diện Ý nghĩa của từ đại diện
?zj?w Từ đại diện là từ có độ dài bằng \(5\), có kí tự thứ nhất và thứ tư là các kí tự bất kì (khác kí tự trống), các kí tự thứ hai và ba là zj, kí tự cuối cùng là w.

    
Trong phép so sánh, hai từ được xem là giống nhau nếu chúng có cùng số lượng kí tự (độ dài của từ) và hai kí tự ở hai vị trí giống nhau của hai từ phải giống nhau hoặc trong hai kí tự này phải có ít nhất một kí tự là kí tự dấu hỏi.

    
Cho trước 2 xâu kí tự \(S\)\(P\), trong đó:

  • Xâu \(S\) chứa nhiều từ, mỗi từ chỉ chứa các kí tự chữ cái thường hoặc chữ cái hoa và mỗi từ cách nhau ít nhất một kí tự trống. Xâu \(S\) có không quá \(255\) kí tự.
  • Xâu \(P\) là một từ đại diện. Xâu \(P\) có không quá \(255\) kí tự.

Yêu cầu:
Xác định có bao nhiêu từ giống từ \(P\) có trong xâu \(S\) (có phân biệt chữ thường và chữ hoa).

Input

  • Dòng đầu tiên chứa xâu \(S\).
  • Dòng đầu hai chứa xâu \(P\).

Output

  • Ghi ra một số nguyên \(k\) là số từ giống từ \(P\) có trong xâu \(S\).

Example

Test 1

Input
abc  defk mjan abc Abc
abc
Output
2

Test 2

Input
tant xranz htjk  hanr safd aann
?an?
Output
3

6. [HSG 9] Số anh cả

Điểm: 20 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: soanhca.inp Output: soanhca.out

Lưu ý:

Vì bài tập cho phép xem testcase 100% nên các bạn học sinh tự làm không được sử dụng if-test để qua mặt hệ thống chấm bài. Nếu phát hiện mình sẽ thông báo lên quản trị viên LQDOJ nhắc nhở và khóa tài khoản của các bạn. Chúc các bạn làm bài tốt.

7. [Xâu ký tự] Số lớn nhất xuất hiện trong xâu

Điểm: 20 (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ỉ bao gồm các chữ cái và chữ số, hãy tìm số lớn nhất xuất hiện trong xâu. Ví dụ với S = "abc123bbba567ajsjk099" thì số lớn nhất xuất hiện trong xâu là 567, chú ý trong trường hợp một số có các số 0 đứng trước thì ta loại bỏ các số 0 đó đi, trong ví dụ số 099 sẽ được tính là số 99.

Input Format

Một dòng duy nhất chứa xâu S.

Constraints

1 ≤ len(S) ≤ 100000.

Output Format

In ra số lớn nhất xuất hiện trong xâu, dù liều đảm bảo có ít nhất 1 số xuất hiện trong xâu.

Sample Input 0

abc123bbba567ajsjk099
Sample Output 0

567

8. Chuỗi liên tục

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

Cho một chuỗi vô hạn \(S\) được tạo ra bằng cách viết chuỗi Tin lặp lại nhiều lần:

\[S = \text{TinTinTinTinTin...}\]

Yêu cầu: Cho một chuỗi \(P\), hãy xác định \(P\) có phải là chuỗi con liên tục của \(S\) hay không?

Ví dụ: TinTin, inTi, nTin, i là các chuỗi con liên tục của \(S\), trong khi đó TT, TnT, ini, tin, I thì không phải.

Input

  • Dòng thứ nhất là số nguyên \(T\) (\(1 \le T \le 100\)) — số lượng bộ dữ liệu.
  • \(T\) dòng tiếp theo, mỗi dòng là chuỗi \(P\) chỉ gồm các ký tự latin (\(1 \le |P| \le 10^3\)).

Output

  • In ra \(T\) dòng tương ứng với từng bộ dữ liệu, in ra Yes nếu \(P\) là chuỗi con liên tục của \(S\), ngược lại in ra No.

Example

Test 1

Input
2
TinTin
TT
Output
Yes
No

Test 2

Input
4
inTi
inti
I
i
Output
Yes
No
No
Yes

9. String #4

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

Nhập xâu \(S\), số nguyên dương \(M\)\(M\) ký tự. Hãy in ra số lần các ký tự đó xuất hiện.

Input

  • Dòng 1 nhập xâu \(S\) (không quá 225 ký tự).
  • Dòng 2 nhập số nguyên dương \(M\) (\(1 \leq M \leq 100\)).
  • \(M\) dòng tiếp theo mỗi dòng 1 ký tự.

Output

  • Gồm \(M\) dòng, lần lượt là số lần xuất hiện của \(M\) kí tự.

Example

Test 1
Input
le quy don online judge
3
l
o
j
Output
2
2
1