Урт палиндром
Submit solution
Points:
3
Time limit:
1.0s
Memory limit:
16M
Author:
Problem type
Allowed languages
C++
Танд нэг мөр тэмдэгт мөр (string) өгөгдөнө.
Гэхдээ энэ мөр нь зөвхөн үсэг биш байж болно. Тоо, зай, тусгай тэмдэгтүүд ч орж болно.
Таны даалгавар бол:
- Тэмдэгт мөрөөс зөвхөн латин үсгүүдийг (a-z, A-Z) авч үлдэнэ.
- Бүх үсгийг жижиг үсэг (lowercase) болгон хувиргана.
- Үүссэн шинэ мөр доторх хамгийн урт palindrome substring (дараалсан дэд мөр)-ийг ол.
Хэрэв олон ижил урттай palindrome байвал:
- хамгийн эхэнд байрлах (leftmost)-ийг сонгоно.
Оролт:
Нэг мөрөнд нэг тэмдэгт мөр өгөгдөнө.
Гаралт:
2 мөр хэвлэнэ:
1-р мөр: хамгийн урт palindrome substring-ийн урт
2-р мөр: тухайн palindrome substring
Хязгаарлалтууд:
1 ≤ n ≤ 200000- Мөр нь:
- латин үсэг (a–z, A–Z)
- цифр (0–9)
- зай
- тусгай тэмдэгтүүд агуулж болно
Дэд бодлого
| № | Дэд бодлого | оноо | Хязгарлалт | Тайлбар |
|---|---|---|---|---|
| 1 | Дэд бодлого -1 | 1 | Зөвхөн жижиг үсгүүд, n ≤ 1000 | |
| 2 | Дэд бодлого -2 | 1 | Зөвхөн латин үсгүүд, n ≤ 2000 | |
| 3 | Дэд бодлого -3 | 1 | Тусгай тэмдэгтүүд орно, n ≤ 5000 | |
| 4 | Дэд бодлого -4 | 1 | Бүх нөхцөл, n ≤ 50000 | |
| 5 | Дэд бодлого -5 | 1 | Нэмэлт хязгаарлалтгүй |
Жишээ:
Оролт-1
babad
Гаралт-1
3
bab
Тайлбар-1
- Боломжит palindrome-ууд:
- "bab"
- "aba"
- Аль аль нь урт 3
- "bab" нь эхэнд байрласан → сонгогдоно
Оролт-2
A man, a plan, a canal: Panama
Гаралт-2
21
amanaplanacanalpanama
Тайлбар-2
- Цэвэрлэсний дараа:
amanaplanacanalpanama
- Бүхэлдээ palindrome → урт нь 21
Оролт-3
abc123cba!!!
Гаралт-3
6
abccba
Comments