یک تابع بنویسید که یک رشته را بهعنوان ورودی دریافت کند و کاراکترهای متوالی تکرارشده را به گروههایی با ساختار زیر دستهبندی کند:
[[value, first_index, last_index, times_repeated], ..., [value, first_index, last_index, times_repeated]]
.
توضیحات پارامترها:
-
- value: کاراکتر مورد بررسی.
- first_index: اندیس اولین حضور کاراکتر.
- last_index: اندیس آخرین حضور متوالی کاراکتر.
- times_repeated: تعداد دفعات تکرار متوالی کاراکتر.
نمونه ورودی و خروجی
find_repeating("a") ➞ [["a", 0, 0, 1]]
find_repeating("aabbb") ➞ [["a", 0, 1, 2], ["b", 2, 4, 3]]
find_repeating("1337") ➞ [["1", 0, 0, 1], ["3", 1, 2, 2], ["7", 3, 3, 1]]
نکات:
- اگر رشته خالی باشد، لیست خالی برگردانید:
"" ➞ []
. - مقادیر غیرتکراری باید در همان اندیس شروع و پایان داشته باشند.
- کاراکترهای متوالی به گروههایی جداگانه تقسیم میشوند.
find_repeating("a") ➞ [["a", 0, 0, 1]]
find_repeating("aabbb") ➞ [["a", 0, 1, 2], ["b", 2, 4, 3]]
find_repeating("1337") ➞ [["1", 0, 0, 1], ["3", 1, 2, 2], ["7", 3, 3, 1]]
find_repeating("aabbbaabbb") ➞ [["a", 0, 1, 2], ["b", 2, 4, 3], ["a", 5, 6, 2], ["b", 7, 9, 3]]
find_repeating('addressee') ➞ [['a', 0, 0, 1], ['d', 1, 2, 2], ['r', 3, 3, 1], ['e', 4, 4, 1], ['s', 5, 6, 2], ['e', 7, 8, 2]]
find_repeating('1111222233334444') ➞ [['1', 0, 3, 4], ['2', 4, 7, 4], ['3', 8, 11, 4], ['4', 12, 15, 4]]
find_repeating('1000000000000066600000000000001') ➞ [['1', 0, 0, 1], ['0', 1, 13, 13], ['6', 14, 16, 3], ['0', 17, 29, 13], ['1', 30, 30, 1]]
نظرات