[Buổi 14][Củng cố đệ quy][ADV] Bài 1: Palindrome số bằng đệ quy trên mảng chữ số


LÀM BÀI

Points: 100
Time limit: 2.0s
Memory limit: 256M

Author:
Problem types
Allowed languages
C++

Palindrome số bằng đệ quy trên mảng chữ số

Bối cảnh

Một chuỗi chữ số được lưu trong mảng ký tự. Bạn cần kiểm tra nó có đọc xuôi và ngược giống nhau không bằng recursion.

Thay vì string/STL, bài dùng mảng char đã quen và hai index left/right.

Yêu cầu

  1. Đọc n và n ký tự chữ số không có khoảng trắng.
  2. Viết hàm đệ quy isPalindrome(a,left,right).
  3. Nếu left>=right, trả true.
  4. Nếu a[left]!=a[right], trả false.
  5. Nếu bằng, gọi tiếp với left+1, right-1.
  6. In YES/NO.

Yêu cầu tổ chức code

Bắt buộc dùng recursion với hai index; không dùng std::string hoặc STL algorithms.

Online Judge chủ yếu chấm output. Giảng viên sẽ quan sát thêm cách tổ chức hàm khi review code để bảo đảm học viên luyện đúng kỹ năng của buổi.

Input

Dòng 1 n. Dòng 2 là chuỗi đúng n chữ số.

Output

YES hoặc NO.

Ràng buộc

1 ≤ n ≤ 3000.

Ví dụ 1

Input

5
12321

Output

YES

Giải thích

Ký tự ngoài cùng 1=1, tiếp theo 2=2, rồi tới giữa 3 nên chuỗi là palindrome.

Ví dụ 2

Input

4
1221

Output

YES

Giải thích

1=1 và 2=2, sau đó left>=right nên palindrome.

Thông tin học tập

  • Module: M04
  • Buổi: B14
  • Loại bài: ADVANCED
  • Độ khó: Hard
  • Concepts: recursion, static arrays, two indices, palindrome checking, base case
  • Giới hạn kiến thức: B01-B14
  • Time limit: 2 second(s)
  • Memory limit: 256 MB
  • Point: 100

Comments

There are no comments at the moment.

Zalo