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

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

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.06.2014, 01:25   #1
UnknownA
 
Регистрация: 04.06.2013
Сообщений: 3
Восклицание Вроде легко..сломал голову

Определить в одномерном массиве длину самой большой повторяющейся последовательности одинаковых элементов.

что тут не так? sequence содержит в себе массив значений,вот он:
String[] sequence = {"a","b","b","b","c","c","g","g","g ","7","2","3","z","z","z","z"," z"};
И результат содержащийся в векторе должен быть : 1 3 2 3 1 1 1 5
но вот ее выходит..

p.s. а после из вектора я ищу максимальный элемент, этот участок кода только западает:

PHP код:
private void _siftRepetition(){
        
_virtualCache = new ArrayList<Integer>();
        
String _cacheSymb sequence[0];
        
int _cacheCounter 0;

        for(
int i 0sequence.lengthi++){
            if(
sequence[i].equals(_cacheSymb)){
                
_cacheCounter++;
            }
            else{
                
_virtualCache.add(_cacheCounter);
                
_cacheCounter 0;
                
_cacheSymb sequence[i];
            }
        }
        for(
int i 0_virtualCache.size(); i++){
            
System.out.print(_virtualCache.get(i));
        }
    } 
UnknownA вне форума Ответить с цитированием
Старый 24.06.2014, 01:41   #2
UnknownA
 
Регистрация: 04.06.2013
Сообщений: 3
По умолчанию

Может кому интересно:

PHP код:
 private void _siftRepetition(){
        
_virtualCache = new ArrayList<Integer>();
        
String _cacheSymb sequence[0];
        
int _cacheCounter 0;

        for(
int i 0sequence.lengthi++){
            if(
_cacheSymb.equals(sequence[i]) && != sequence.length 1){
                
_cacheCounter++;
            }
            else if(
_cacheSymb.equals(sequence[i]) && == sequence.length 1){
                
_cacheCounter++;
                
_virtualCache.add(_cacheCounter);
            }
            else{
                
_virtualCache.add(_cacheCounter);
                
_cacheCounter 0;
                
_cacheSymb sequence[i];
                if(
_cacheSymb.equals(sequence[i])){
                    
_cacheCounter++;
                }
            }
        }
        for(
int i 0_virtualCache.size(); i++){
            
System.out.print(_virtualCache.get(i));
        }
    } 
UnknownA вне форума Ответить с цитированием
Старый 24.06.2014, 03:05   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Код:
private void _siftRepetition() {
    String _cacheSymb = sequence[0];
    int _counter = 1;
    int _maxCount = 0;
    for(int i = 1; i < sequence.length; i++) {
        if(_cacheSymb.equals(sequence[i]))
            _counter++;
        else {
            if (_counter > _maxCount)
                _maxCount = _counter;
            _cacheSymb = sequence[i];
            _counter = 1;
        }
    }
    if (_counter > _maxCount)
        _maxCount = _counter;
    System.out.print(_maxCount);
}
Не проверял.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Форма IMAGE BMP сломал голову jin_jin Мультимедиа в Delphi 1 15.02.2013 20:29
Всю голову сломал с индексацией сайта engineer_pro PHP 4 17.08.2012 21:20
Не могу разобраться с ошибками, голову сломал Cyber Общие вопросы C/C++ 8 14.02.2011 16:40
Строки, вроде легко Чуччи Помощь студентам 1 26.11.2010 17:02
Всю голову сломал lesha_firs Общие вопросы Delphi 6 17.06.2009 16:59