у меня есть пять строк, как показано ниже,ошибочная фиксация символов строк в C#
ABBCCD
ABBDCD
ABBDCD
ABBECD
ABBDCD
все строки в основном такие же, за исключением четвертых символов. Но только тот символ, который появляется максимальное время, займет место. Например, здесь D было помещено 3 раза в четвертую позицию. Итак, последней строкой будет ABBDCD. Я написал следующий код, но он казался менее эффективным с точки зрения времени. Потому что эту функцию можно назвать миллион раз. Что мне делать, чтобы улучшить производительность?
Здесь changedString - это строка, соответствующая другим 5 строкам. Если любая позиция измененной строки не совпадает с другими четырьмя, тогда символ maxmum будет помещен в changedString.
len - длина строк, которая одинакова для всех строк.
for (int i = 0; i < len;i++)
{
String findDuplicate = string.Empty + changedString[i] + overlapStr[0][i] + overlapStr[1][i] + overlapStr[2][i] +
overlapStr[3][i] + overlapStr[4][i];
char c = findDuplicate.GroupBy(x => x).OrderByDescending(x => x.Count()).First().Key;
if(c!=changedString[i])
{
if (i > 0)
{
changedString = changedString.Substring(0, i) + c +
changedString.Substring(i + 1, changedString.Length - i - 1);
}
else
{
changedString = c + changedString.Substring(i + 1, changedString.Length - 1);
}
}
//string cleanString = new string(findDuplicate.ToCharArray().Distinct().ToArray());
}
Я был в исправить, как я могу дать название, ладно, я сделал его кратким. –
Это домашнее задание? –
Нет, я делаю проект, и для этого мне нужно было использовать эту функцию. Но занимает много времени. –