Лучший форматировщик исходного кода для Javascript? [закрыто]

Лучший алгоритм, который я когда-либо нашел, со сложностью O (N)

 import java.util.Arrays;

 public class ManachersAlgorithm {

  public static String findLongestPalindrome(String s) {
    if (s==null || s.length()==0)
      return "";

    char[] s2 = addBoundaries(s.toCharArray());
    int[] p = new int[s2.length]; 
    int c = 0, r = 0; // Here the first element in s2 has been processed.
    int m = 0, n = 0; // The walking indices to compare if two elements are the same
    for (int i = 1; i<s2.length; i++) {
      if (i>r) {
        p[i] = 0; m = i-1; n = i+1;
      } else {
        int i2 = c*2-i;
        if (p[i2]<(r-i)) {
          p[i] = p[i2];
          m = -1; // This signals bypassing the while loop below. 
        } else {
          p[i] = r-i;
          n = r+1; m = i*2-n;
        }
      }
      while (m>=0 && n<s2.length && s2[m]==s2[n]) {
        p[i]++; m--; n++;
      }
      if ((i+p[i])>r) {
        c = i; r = i+p[i];
      }
    }
    int len = 0; c = 0;
    for (int i = 1; i<s2.length; i++) {
      if (len<p[i]) {
        len = p[i]; c = i;
      }
    }
    char[] ss = Arrays.copyOfRange(s2, c-len, c+len+1);
    return String.valueOf(removeBoundaries(ss));
  }

  private static char[] addBoundaries(char[] cs) {
    if (cs==null || cs.length==0)
      return "||".toCharArray();

    char[] cs2 = new char[cs.length*2+1];
    for (int i = 0; i<(cs2.length-1); i = i+2) {
      cs2[i] = '|';
      cs2[i+1] = cs[i/2];
    }
    cs2[cs2.length-1] = '|';
    return cs2;
  }

  private static char[] removeBoundaries(char[] cs) {
    if (cs==null || cs.length<3)
      return "".toCharArray();

    char[] cs2 = new char[(cs.length-1)/2];
    for (int i = 0; i<cs2.length; i++) {
      cs2[i] = cs[i*2+1];
    }
    return cs2;
  }    
}
13
задан Community 23 May 2017 в 12:32
поделиться

4 ответа

В одном дыхании: Aptana Studio! Да, это - Java, базирующийся и свободный (Eclipse, как автономный или сменный).

Вы можете также настраивать форматирование .

11
ответ дан Filip Dupanović 23 May 2017 в 12:32
поделиться
  • 1
    Другими словами, документация является неправильной, когда она говорит, что аргументом является receiver' s размер и it' s на самом деле размер родитель предпочел бы, чтобы ребенок использовал? I' ve, конечно, записанный код тот путь, но я хочу подтвердить если that' s, что Вы имеете в виду. – Vaddadi Kartick 23 December 2011 в 04:15

Если Вы уже используете Eclipse, я рекомендую Вам попробовать Aptana, можно установить его как Плагин Eclipse.

4
ответ дан CMS 23 May 2017 в 12:32
поделиться
  • 1
    О, я didn' t знают это. С тех пор it' s недокументированный, я определил saneSizeToFit на UIView через категорию, которая вызывает sizeThatFits с четко определенным размером:) – Vaddadi Kartick 27 December 2011 в 06:04

Если Вам также нужно программирование Java, я могу рекомендовать' ИДЕЯ IntelliJ ',

Это предлагает превосходное форматирование JavaScript и рефакторинг из поля.

2
ответ дан Ahmed Ashour 23 May 2017 в 12:32
поделиться

Это лучшее, что я встречал: http://jsbeautifier.org/

Доступен как онлайн-инструмент или в командной строке с помощью узла .js или питон. Исходный код доступен .

13
ответ дан 1 December 2019 в 19:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: