Создание пользовательского Eclipse JDT Новый Мастер Проекта?

Нет единственные решение на здесь, которое принимает во внимание, что палиндром может также быть основан на единицах слова, не только символьных единицах.

то, Что означает, что ни одно из данных решений не возвращает true для палиндромов как "Девочка, купающаяся на Бикини, следя за мальчиком, видит, что мальчик следит за бикини на купающейся девочке".

Вот является взломанный вместе версией в C#. Я уверен, что этому не нужен regexes, но это действительно работает точно также с вышеупомянутым палиндромом бикини, как это делает с "Человеком, планом, Панама канала!".

    static bool IsPalindrome(string text)
    {
        bool isPalindrome = IsCharacterPalindrome(text);
        if (!isPalindrome)
        {
            isPalindrome = IsPhrasePalindrome(text);
        }
        return isPalindrome;
    }

    static bool IsCharacterPalindrome(string text)
    {
        String clean = Regex.Replace(text.ToLower(), "[^A-z0-9]", String.Empty, RegexOptions.Compiled);
        bool isPalindrome = false;
        if (!String.IsNullOrEmpty(clean) && clean.Length > 1)
        {
            isPalindrome = true;
            for (int i = 0, count = clean.Length / 2 + 1; i < count; i++)
            {
                if (clean[i] != clean[clean.Length - 1 - i])
                {
                    isPalindrome = false; break;
                }
            }
        }
        return isPalindrome;
    }

    static bool IsPhrasePalindrome(string text)
    {
        bool isPalindrome = false;
        String clean = Regex.Replace(text.ToLower(), @"[^A-z0-9\s]", " ", RegexOptions.Compiled).Trim();
        String[] words = Regex.Split(clean, @"\s+");
        if (words.Length > 1)
        {
            isPalindrome = true;
            for (int i = 0, count = words.Length / 2 + 1; i < count; i++)
            {
                if (words[i] != words[words.Length - 1 - i])
                {
                    isPalindrome = false; break;
                }
            }
        }
        return isPalindrome;
    }
8
задан staticbeast 16 July 2011 в 11:49
поделиться