Ошибка выдаваемая компилятором на олимпиадном сайте. ArgumentOutOfRange: Must be greater than length of string - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет. На одном сайте в качестве олимпиадной задачи, ну или что то около того потребовалось написать метод проверки палиндромов Вот самый простой алгоритм, который у меня получился
Листинг программы
  1. bool checkPalindrome(string inputString)
  2. {
  3. bool flag = true;
  4. string str = inputString;
  5. char[] array = str.ToCharArray(1, inputString.Length);
  6. if (inputString.Equals( null))
  7. {
  8. return false;
  9. }
  10. else
  11. {
  12.  
  13. for (int i = 0; i < array.Length; i++)
  14. {
  15. while (array[i] == array[i + 1])
  16. {
  17. if (array[i] == array[-i]) //aaaabcaaaa
  18. {
  19. flag = true;
  20. return flag;
  21. }
  22. else
  23. {
  24. flag = false;
  25. return flag;
  26. }
  27. }
  28.  
  29. }
  30. return flag;
  31. }
  32. }
В Visual Studio - все работает нормально, но на самом сайте проверка "падает" со следующей ошибкой:
System.Reflection.TargetInvocationE xception: Exception has been thrown by the target of an invocation. ---> System.ArgumentOutOfRangeException: Must be greater than the length of the string. Parameter name: startIndex at System.String.ToCharArray (Int32 startIndex, Int32 length) [0x00000] in :0 at testingCSharp._runigcbr.checkPalind rome (System.String inputString) [0x00000] in :0 at (wrapper managed-to-native) System.Reflection.MonoMethod:Intern alInvoke (System.Reflection.MonoMethod,objec t,object[],System.Exception&) at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in :0 --- End of inner exception stack trace --- at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in :0 at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in :0 at testingCSharp.TEST_0.run () [0x00000] in :0
До этого была другая ошибка но как мне подсказали у меня не было проверки условия - если строка null, теперь проверка есть, но ошибка по прежнему возникает. Заранее спасибо!

Решение задачи: «Ошибка выдаваемая компилятором на олимпиадном сайте. ArgumentOutOfRange: Must be greater than length of string»

textual
Листинг программы
  1. static bool checkPalindrome(string inputString)
  2.         {
  3.             if(string.IsNullOrEmpty(inputString)) throw new ArgumentException();
  4.             for(int i = 0; i<inputString.Length/2;i++)
  5.                 if(inputString[i] !=inputString[inputString.Length - i - 1]) return false;
  6.            return true;
  7.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы