Проверьте, совпадает ли строка после переупорядочения слова - C#

Вопрос задан: 8 месяцев назад Последняя активность: 8 месяцев назад
up -1 down

Вот строка: -A -P -O

Теперь у нас то же самое, но в другом порядке: -P -A -O

Как лучше всего определить, что эти две строки одинаковы?

c#

3 ответа

up 6 down accepted
var setA = "-A -P -O".Split(' ');
var setB = "-P -A -O".Split(' ');
var areSetsEqual = setA.Except(setB).Count() == 0 && setB.Except(setA).Count() == 0;
up 3 down

Вы можете просто разделить обе строки, используя Split метод сортировки массивов, используя Array.Sort а затем сравнить два полученных массива, используя SequenceEqual метод.

up 2 down

Вы можете попробовать этот код:

public bool CheckString(string s1, string s2)
{
  var firstArray = s1.Split(' ').ToArray();
  var secondArray = s2.Split(' ').ToArray();
  Array.Sort(firstArray);
  Array.Sort(secondArray);
  if (firstArray.Length != secondArray.Length) return false;
  for (int i = 0; i < firstArray.Length; i++)
    if (firstArray[i] != secondArray[i]) return false;
  return true;
}