Программа проверки правописания для комментариев, строк, возможно, больше

Я думаю, что это могло бы быть быстрее, чтобы сделать оперативное сравнение. При инвертировании строки Вы имеете к:

  1. Инстанцируют нового строкового объекта (или объекта StringBuffer)
  2. Копия, данные (наоборот) от первой строки до новой строки
  3. Делают Ваше сравнение.

при выполнении сравнения на месте Вы делаете только последний шаг. Даже затем, Ваше сравнение является только половиной строки (или половиной - 0.5, в случае нечетного числа символов). Что-то как следующее должно работать:

static bool IsPalindromic(string s){
    int len = s.Length;
    int half = len-- >> 1;
    for(int i = 0; i < half; i++)
        if(s[i] != s[len - i])
            return false;
    return true;
}

РЕДАКТИРОВАНИЕ:

, Хотя это отвечает на вопрос OP, решения, предлагаемые ggf31416 и , конфигуратор решает реальную потребность OP приблизительно на 30% быстрее моими тестами. решением конфигуратора является крошечный бит быстрее, чем ggf31416, если Вы преобразовываете его в статический метод и используете int с вместо ulong с (но намного медленнее, иначе).

Кстати, пробежка этих примеров для решения проблемы упоминания OP (находящий самый большой палиндромический продукт любых двух трехзначных чисел) с простым (возможно, naГЇve) цикл ниже:

for(int i = 100; i < 1000; i++)
    for(int j = i; j < 1000; j++) // calculations where j < i would be redundant
        ...

урожаи следующие результаты на моей машине:

IsPalindromic(product.ToString()) took 0.3064174 seconds.
ggf31416Reverse(product) == product took 0.1933994 seconds.
configuratorReverse(product) == product took 0.1872061 seconds.

Каждый приводит к корректному результату 913 * 993 = 906609.

6
задан Ronny Brendel 17 August 2009 в 21:08
поделиться

5 ответов

Я кое-что нашел!

svn co svn://anonsvn.kde.org/home/kde/trunk/quality/krazy2 krazy2

Это часть системы управления качеством KDE. Помимо множества проверок (специфичных для KDE, специфичных для qt, специфичных для cpp и т. Д.), Существует автоматическая проверка орфографии.

надеюсь, что это поможет

3
ответ дан 8 December 2019 в 17:25
поделиться

Eclipse (основанный на Java, который поддерживает Mac, Linux и т. Д.) Имеет встроенную проверку орфографии. С помощью подключаемого модуля CDT вы можете редактировать и создавать код C ++.

3
ответ дан 8 December 2019 в 17:25
поделиться

Vim также поддерживает проверку орфографии.

Подробнее см. Другой вопрос .

3
ответ дан 8 December 2019 в 17:25
поделиться

Какие редакторы вы используете? Многие из них обладают способностями проверки орфографии. Например, в gedit должен быть включен плагин проверки орфографии.

2
ответ дан 8 December 2019 в 17:25
поделиться

В Emacs тоже есть проверка орфографии, я использую flyspell-prog-mode, это (очень!) Личное предпочтение, которое лучше всего подходит для вас.

Идея автоматизации проверки орфографии - гораздо более сложная задача. Лучшее, на что вы можете надеяться, - это тот, который сообщит вам, есть ли орфографические ошибки. Это сложнее, чем кажется, особенно с комментариями к коду, которые могут содержать всевозможные допустимые сокращения, не являющиеся настоящими словами.

Наличие политики компании, согласно которой для всех людей, для которых установлена ​​переменная среды EDITOR, включена проверка орфографии, должно сократить на орфографические ошибки в сообщениях о фиксации, например.

3
ответ дан 8 December 2019 в 17:25
поделиться