بکندباز

یک تابع بنویسید که یک رشته را به‌عنوان ورودی دریافت کند و کاراکترهای متوالی تکرارشده را به گروه‌هایی با ساختار زیر دسته‌بندی کند:

[[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 { "a", 0, 0, 1 } }, Backendbaz.FindRepeating("a"));
Assert.Equal(new List> { new List { "a", 0, 1, 2 }, new List { "b", 2, 4, 3 } }, Backendbaz.FindRepeating("aabbb"));
Assert.Equal(new List> { new List { "1", 0, 0, 1 }, new List { "3", 1, 2, 2 }, new List { "7", 3, 3, 1 } }, Backendbaz.FindRepeating("1337"));
Assert.Equal(new List> { new List { "a", 0, 1, 2 }, new List { "b", 2, 4, 3 }, new List { "a", 5, 6, 2 }, new List { "b", 7, 9, 3 } }, Backendbaz.FindRepeating("aabbbaabbb"));
Assert.Equal(new List> { new List { "a", 0, 0, 1 }, new List { "d", 1, 2, 2 }, new List { "r", 3, 3, 1 }, new List { "e", 4, 4, 1 }, new List { "s", 5, 6, 2 }, new List { "e", 7, 8, 2 } }, Backendbaz.FindRepeating("addressee"));
Assert.Equal(new List> { new List { "1", 0, 3, 4 }, new List { "2", 4, 7, 4 }, new List { "3", 8, 11, 4 }, new List { "4", 12, 15, 4 } }, Backendbaz.FindRepeating("1111222233334444"));
Assert.Equal(new List> { new List { "1", 0, 0, 1 }, new List { "0", 1, 13, 13 }, new List { "6", 14, 16, 3 }, new List { "0", 17, 29, 13 }, new List { "1", 30, 30, 1 } }, Backendbaz.FindRepeating("1000000000000066600000000000001"));
                                                    
                                                                                                

هنوز پاسخی برای این تمرین ثبت نشده است

نظرات

*
*

تمرینات مرتبط