یک تابع بنویسید که یک رشته را بهعنوان ورودی دریافت کند و کاراکترهای متوالی تکرارشده را به گروههایی با ساختار زیر دستهبندی کند:
[[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]]
نکات:
- اگر رشته خالی باشد، لیست خالی برگردانید:
"" ➞ []
. - مقادیر غیرتکراری باید در همان اندیس شروع و پایان داشته باشند.
- کاراکترهای متوالی به گروههایی جداگانه تقسیم میشوند.
self.assertEqual(find_repeating("a"), [["a", 0, 0, 1]]) self.assertEqual(find_repeating("aabbb"), [["a", 0, 1, 2], ["b", 2, 4, 3]]) self.assertEqual(find_repeating("1337"), [["1", 0, 0, 1], ["3", 1, 2, 2], ["7", 3, 3, 1]]) self.assertEqual(find_repeating("aabbbaabbb"), [["a", 0, 1, 2], ["b", 2, 4, 3], ["a", 5, 6, 2], ["b", 7, 9, 3]]) self.assertEqual(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]]) self.assertEqual(find_repeating('1111222233334444'), [['1', 0, 3, 4], ['2', 4, 7, 4], ['3', 8, 11, 4], ['4', 12, 15, 4]]) self.assertEqual(find_repeating('1000000000000066600000000000001'), [['1', 0, 0, 1], ['0', 1, 13, 13], ['6', 14, 16, 3], ['0', 17, 29, 13], ['1', 30, 30, 1]])
پاسخ های کاربران به این تمرین
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
نظرات