Loading...
Yovor37 avatar Yovor37 1 Точки

06. Replace Repeating Chars - Text Processing Exercises

Здравейте, имам следният въпрос за тази задача  https://judge.softuni.bg/Contests/Practice/Index/1217#5

 

ето условието :

Write a program that reads a string from the console and replaces any sequence of the same letters with a single corresponding letter.

Examples

Input

Output

aaaaabbbbbcdddeeeedssaa

abcdedsa

qqqwerqwecccwd

qwerqwecwd

Въпросът ми е защо не работи правилно кода когато използвам str.Remove(str[i]);, а работи правилно когато използвам str.RemoveAt(i);

Каква е разликата ?

 

ето и кода:

using System;
using System.Linq;

namespace ConsoleApp4
{
    class Program
    {
        static void Main(string[] args)
        {
            var str = Console.ReadLine().ToList();

            for (int i = 0; i < str.Count - 1; i++)
            {
                char curr = str[i];
                char next = str[i +1];
                if (curr == next)
                {
                    str.RemoveAt(i);
                    //str.Remove(str[i]);  така не работи правилно ,защо ?
                    i--;
                }
            }

            Console.WriteLine(string.Join("", str));
           
        }
    }
}
 

Тагове:
0
Fundamentals Module 08/03/2020 18:59:54
NKKalev avatar NKKalev 10 Точки

Здравейте,

 

Може ли да качите примерно решение на същата задача с Python?

 

Поздрави

0
Elena123456 avatar Elena123456 235 Точки

Здравейте @NKKalev,

макар и да Ви пиша с малко закъснение, предоставям Ви прост алгоритъм за решението на задачата, като смятам, че ще е валиден и на Python: https://pastebin.com/SbjR37wN

Минавам през всички символи с for цикъл  от 0 до text.Length-1 и ако символите са еднакви програмата продължава, но ако са различни запазвам  само предходния символ. Накрая винаги си запазвам последния символ от текста. Не зная за Python, но в C# има клас StringBuilder(), който играе ролята на буфер при конкатенация на символи или стрингове, и точно него използвам за да държа резултата.

Дано да съм Ви помогнала!

Поздрави!

0
donamtf avatar donamtf 9 Точки

hank you so much for this. I was into this issue  VidMate and tired to   tinker around to check if its possible but couldnt get it done. Now that i have seen the way you did it, thanks guys
with
regards

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.