[Buổi 20][Chuỗi][RDD] Bài 29: Dịch chuyển ký tự


LÀM BÀI

Points: 20
Time limit: 1.0s
Memory limit: 125M

Author:
Problem types
Allowed languages
C++

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

There are no comments at the moment.

Zalo