Điều hướng chính

Nhắn tin NQ Coding

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Bài tập xoayvongthcscontest3

Bài 1 : Xoay vòng (5.0 điểm)

Dễ Cài đặt

  • 100p Điểm
  • 1.0s Thời gian
  • 256M Bộ nhớ
  • 33% Tỉ lệ AC
  • 1 Số AC

Trong một hệ thống xử lý dữ liệu văn bản, các xâu ký tự đôi khi được lưu trữ dưới dạng xoay vòng nhằm tối ưu việc truy xuất và so khớp nhanh.
Một phép xoay vòng được thực hiện bằng cách lấy một số ký tự liên tiếp ở đầu xâu ban đầu và chuyển chúng ra cuối xâu, đồng thời giữ nguyên thứ tự tương đối của các ký tự còn lại.

Cho hai xâu ký tự \(S\) và \(T\) chỉ gồm các chữ cái in thường.

Ta gọi xâu \(T\) là một xâu xoay vòng của xâu \(S\) nếu có thể thu được \(T\) từ \(S\) thông qua đúng một phép xoay vòng như đã mô tả.

Ví dụ:

  • abcde \(\rightarrow\) cdeab
  • abcde \(\rightarrow\) deabc

Giải thích:

Một phép xoay vòng của một xâu ký tự được thực hiện bằng cách chọn một số nguyên \(k\) (\(0 \le k < |S|\)), sau đó:

  • lấy \(k\) ký tự đầu tiên của xâu \(S\),
  • chuyển chúng ra cuối xâu,
  • giữ nguyên thứ tự tương đối của các ký tự còn lại.

Nói cách khác, nếu \(S = XY\) với \(|X| = k\) thì xâu thu được sau phép xoay vòng là \(YX\).

Yêu cầu:
Hãy xác định xem xâu \(T\) có phải là một xâu xoay vòng của xâu \(S\) hay không.

Input

  • Dòng thứ nhất chứa xâu \(S\) (\(1 \le |S| \le 1000\))
  • Dòng thứ hai chứa xâu \(T\) (\(1 \le |T| \le 1000\))

Output

  • In ra YES nếu \(T\) là xâu xoay vòng của \(S\)
  • Ngược lại, in ra NO

Sample Input 1

abcde
cdeab

Sample Output 1

YES

Bình luận

Chưa có bình luận nào.