Показать сообщение отдельно
  #11 (permalink)  
Старый 17.02.2017, 00:36
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

function maxUniqSubStr(str) {
    if (!str) { return ''; }

    var map = { };
    var maxLength = 1;
    var maxStart = 0;
    var start = 0;
    map[str[0]] = 0;
    
    for (var i = 1, le = str.length; i < le; ++i) {
        var c = str[i];
        var pos = map[c];
        if (pos != null && pos >= start) {
            if (maxLength < i - start) {
                maxStart = start;
                maxLength = i - start;
            }
            start = pos + 1;
        }
        map[c] = i;
    }
    if (maxLength < i - start) {
        maxStart = start;
        maxLength = i - start;
    }
    return str.substr(maxStart, maxLength);
}

alert(maxUniqSubStr('abcdeahopwunshslge'));
Ответить с цитированием