[Buổi 20][Chuỗi][RDD] Bài 29: Dịch chuyển ký tự
Dịch chuyển ký tự
Bối cảnh
Hiếu có một chuỗi \(S\) gồm các chữ cái tiếng Anh viết thường.
Yêu cầu
Trên chuỗi này, anh ấy sẽ thực hiện thao tác dưới đây một lần.
Đầu tiên, chọn một số nguyên không âm \(K\). Sau đó, dịch chuyển mỗi ký tự của \(S\) sang bên phải \(K\) (xem bên dưới). Ở đây,
\(a\) dịch chuyển sang phải \(1\) là \(b\); \(b\) dịch chuyển sang phải \(1\) là \(c\); \(c\) dịch chuyển sang phải \(1\) là \(d\); \(\vdots\) \(y\) dịch chuyển sang phải \(1\) là \(z\); \(z\) dịch chuyển sang phải \(1\) là \(a\). Ví dụ, \(b\) dịch chuyển sang phải \(4\) là \(f\), và \(y\) dịch chuyển sang phải \(3\) là \(b\).
Bạn được cho một chuỗi \(T\). Xác định xem Hiếu có thể làm cho \(S\) bằng \(T\) bằng cách thực hiện thao tác trên không.
Input
\(S\) \(T\)
Output
NếuHiếu có thể làm cho \(S\) bằng \(T\), in Yes; nếu không, in No.
Ràng buộc
Mỗi chuỗi \(S\) và \(T\) có độ dài từ \(1\) đến \(10^5\) (bao gồm) và bao gồm các chữ cái tiếng Anh viết thường. Độ dài của \(S\) và \(T\) là bằng nhau.
Ví dụ 1
Input
abc
ijk
Output
Yes
Giải thích ví dụ
Khi Hiếu chọn \(K = 8\),
\(a\) dịch chuyển sang phải \(8\) và trở thành \(i\), \(b\) dịch chuyển sang phải \(8\) và trở thành \(j\), \(c\) dịch chuyển sang phải \(8\) và trở thành \(k\), và bây giờ \(S\) và \(T\) bằng nhau. Do đó, anh ấy có thể làm cho \(S\) bằng \(T\), vì vậy in Yes.
Ví dụ 2
Input
z
a
Output
Yes
Giải thích ví dụ
Chọn \(K = 1\) làm cho \(S\) và \(T\) bằng nhau. Lưu ý rằng chữ cái bên phải của \(z\) là \(a\).
Ví dụ 3
Input
ppq
qqp
Output
No
Giải thích ví dụ
Không có số nguyên không âm \(K\) nào mà anh ấy có thể chọn để làm cho \(S\) bằng \(T\), vì vậy in No.
Ví dụ 4
Input
atcoder
atcoder
Output
Yes
Giải thích ví dụ
Ví dụ 1
Input: abc, ijk
Giải thích: Chọn K = 8, dịch chuyển từng ký tự trong abc sang phải 8 lần sẽ biến thành ijk, nên in Yes.
Ví dụ 2
Input: z, a
Giải thích: Chọn K = 1, dịch chuyển z sang phải 1 lần thành a, nên in Yes.
Ví dụ 3
Input: ppq, qqp
Giải thích: Không có giá trị K nào có thể biến ppq thành qqp, nên in No.
Ví dụ 4
Input: atcoder, atcoder
Giải thích: Chọn K = 0, không cần dịch chuyển, S đã bằng T, nên in Yes.
Chọn \(K = 0\) làm cho \(S\) và \(T\) bằng nhau.
Thông tin học tập
- Buổi: B20
- Concepts: std::string, character indexing, modulo 26
- Giới hạn kiến thức: B01-B20
- Time limit: 1 second
- Memory limit: 125 MB
- Point: 20
Comments