Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2017, 17:20   #1
BadCats
Пользователь
 
Аватар для BadCats
 
Регистрация: 31.01.2016
Сообщений: 67
Вопрос Ошибка выдаваемая компилятором на олимпалном сайте

Всем привет. На одном сайте в качестве олимпиадной задачи, ну или что то около того потребовалось написать метод проверки палиндромов
Вот самый простой алгоритм, который у меня получился
Код:
bool checkPalindrome(string inputString) {
bool flag = true;
            string str = inputString;
            char[] array = str.ToCharArray(1, inputString.Length);
           
            for (int i = 0; i < array.Length; i++)
            {
                while (array[i] == array[i + 1])
               {
                
                    if (array[i] == array[-i]) //aaaabcaaaa
                    {
                        flag= true;
                        return flag;
                    }
                    else
                    {
                        flag= false;
                        return flag;
                    }
                   
              }
В Visual Studio - все работает нормально, но на самом сайте проверка
"падает" со следующей ошибкой:

Цитата:
0/10
Execution error on test 1: Something went wrong when executing the solution - program stopped unexpectedly with an error.

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 <filename unknown>:0
at testingCSharp._runatuca.checkPalind rome (System.String inputString) [0x00000] in <filename unknown>: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 <filename unknown>: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 <filename unknown>:0
at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0
at testingCSharp.TEST_0.run () [0x00000] in <filename unknown>:0
Кто может подсказать?
BadCats вне форума Ответить с цитированием
Старый 13.05.2017, 17:31   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Вы забыли протестировать свой алгоритм на пустой строке.
p51x вне форума Ответить с цитированием
Старый 13.05.2017, 17:35   #3
BadCats
Пользователь
 
Аватар для BadCats
 
Регистрация: 31.01.2016
Сообщений: 67
По умолчанию

Спасибо, сейчас исправлю
BadCats вне форума Ответить с цитированием
Старый 13.05.2017, 20:06   #4
BadCats
Пользователь
 
Аватар для BadCats
 
Регистрация: 31.01.2016
Сообщений: 67
По умолчанию

Код:
bool checkPalindrome(string inputString)
        {
            bool flag = true;
            string str = inputString;
            char[] array = str.ToCharArray(1, inputString.Length);
            if (inputString.Equals( null))
            {
                return false;
            }
            else
            {


                for (int i = 0; i < array.Length; i++)
                {
                    while (array[i] == array[i + 1])
                    {

                        if (array[i] == array[-i]) //aaaabcaaaa
                        {
                            flag = true;
                            return flag;
                        }
                        else
                        {
                            flag = false;
                            return flag;
                        }

                    }



                }
                return flag;
            }
        }
Цитата:
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 <filename unknown>:0
at testingCSharp._runigcbr.checkPalind rome (System.String inputString) [0x00000] in <filename unknown>: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 <filename unknown>: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 <filename unknown>:0
at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0
at testingCSharp.TEST_0.run () [0x00000] in <filename unknown>:0
BadCats вне форума Ответить с цитированием
Старый 13.05.2017, 21:02   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

null и "" - две большие разницы
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при добавлении объявления на сайте oreshek27 PHP 1 25.09.2014 05:07
ssl idhttp авторизация на сайте (ошибка) Fahman Общие вопросы Delphi 16 21.08.2014 08:06
проблема с компилятором Антон-Царевич Общие вопросы C/C++ 12 09.03.2013 00:26
C++ | Ошибка найденная компилятором в С++ Borland при написании программы Mitrash Помощь студентам 3 05.07.2012 11:54
проблема с компилятором Monomah Помощь студентам 3 11.04.2011 16:38