یک تابع بنویسید که یک رشته را بهعنوان ورودی دریافت کند و کاراکترهای متوالی تکرارشده را به گروههایی با ساختار زیر دستهبندی کند:
[[value, first_index, last_index, times_repeated], ..., [value, first_index, last_index, times_repeated]]
.
توضیحات پارامترها:
-
- value: کاراکتر مورد بررسی.
- first_index: اندیس اولین حضور کاراکتر.
- last_index: اندیس آخرین حضور متوالی کاراکتر.
- times_repeated: تعداد دفعات تکرار متوالی کاراکتر.
نمونه ورودی و خروجی
FindRepeating("a") ➞ [["a", 0, 0, 1]]
FindRepeating("aabbb") ➞ [["a", 0, 1, 2], ["b", 2, 4, 3]]
FindRepeating("1337") ➞ [["1", 0, 0, 1], ["3", 1, 2, 2], ["7", 3, 3, 1]]
نکات:
- اگر رشته خالی باشد، لیست خالی برگردانید:
"" ➞ []
. - مقادیر غیرتکراری باید در همان اندیس شروع و پایان داشته باشند.
- کاراکترهای متوالی به گروههایی جداگانه تقسیم میشوند.
Assert.Equal(new List> { new List