Я новичок в C # и попытался написать собственный простой метод для кодирования длины строки в строке. Он работает хорошо, за исключением последней буквы, потому что последняя буква не будет отображаться. Что не так с моей логикой?
namespace RunLengthEncoding
{
class Program
{
static void Main(string[] args)
{
string tobesorted;
string encoded = "";
int temp1, temp2;
int same = 1;
Console.WriteLine("Please enter the string you want to be sorted");
tobesorted = Console.ReadLine();
tobesorted = tobesorted.ToUpper();
tobesorted = tobesorted.Replace(" ", string.Empty);
char[] tbsarray = tobesorted.ToCharArray();
for (int i =0; i < tbsarray.Length-1; i++)
{
temp1 = tbsarray[i];
temp2 = tbsarray[i + 1];
if (temp1==temp2)
{
same++;
}
else
{
encoded = encoded + tbsarray[i];
encoded = encoded + Convert.ToString(same);
same = 1;
}
if ((tbsarray.Length-2 == i))
{
encoded = encoded + tbsarray[i] + Convert.ToString(same);
Console.WriteLine(encoded);
}
}
Console.WriteLine(encoded);
Console.ReadLine();
}
}
}