Решил данную задачу через нахождение длины каждой строки отдельно по каждому индексу, потом присваивал индексу другого массива длину первого массива. Ну в общем, очень большой код получается. Задумался, можно ли как - то найти длину строк массива по индексу универсальным коротким методом и быстро присвоить это другому массиву. Возможно ли это?
Вопрос по предыдущей задаче возник, можно ли одному массиву присвоить второй? Грубо говоря, один массив "слить" со вторым. (то, что они должны быть одинаковые или тот в который хочу "слить" - понятно). Искал в инете, ничего не смог найти.
Заранее спасибо!
Andrew
7 уровень
Знатоки, если не сложно, объясните, пожалуйста.
Архивный
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
trali vali
18 августа 2019, 12:01
да я тоже длину строки присваивал по отдельности, так что я думаю ничего в этом страшного нет
0
Стас ПасинковSoftware Developer в ZipyMaster
2 августа 2019, 02:02полезный
я рекомендую при написании кода исходить больше не из оптимизации, а делать уклон на читабельность кода.
надо всегда держать в голове тот факт, что код мы пишем больше не для машины (машина поймет и a[], aa[], aab() и прочие идиотские названия переменных/методов/и даже классов), а для другого человека. который потом через год-два-десть будет сидеть и разбираться в вашем коде (а может это будете и вы сами).
первым делом надо стараться давать нормальные, понятные названия переменным/методам/классам/константам. чтобы прочитал название - и сразу было понятно для чего это используется и что оно делает.
после чего, я предлагаю стараться избавляться от magic numbers. где-то я читал, что одно время в амазоне (вроде) код программистов не проходил проверку если в коде использовались какие-либо числовые литералы кроме 0 и 1. это жестко, конечно, но тоже надо стараться использовать вместо самих чисел - переменные/константы с нужным вам значением и понятным названием.
подозреваю, что многие, кто решал эту задачу писали что-то типа
проблема в том, что если вдруг понадобится приспособить задачу не под 10 строк, а под 1022 строки - то вам надо найти в коде ВСЕ десятки и в каждом месте их заменить на новое число.
но и это еще не все. даже если вы заменили везде на 1022 - то когда кто-то другой сядет читать ваш код - ему прийдется полностью разобраться что делает программа и что это за такое "магическое" число 1022
+2
JustinianJudge в Mega City OneMaster
1 августа 2019, 21:49
Не думай про универсальные и короткие методы. Думай про то, чтобы алгоритм был верным и по возможности оптимизированным. Лаконичность это хорошо, но краткость в джаве не самоцель, это в других языках программирования чем меньше тем круче, в джаве такого нет.
Код должен быть логичным, не перегруженым, оптимизированным, лаконичным. Слово краткость забудь.
Судя по твоему описанию, ты сделал все верно. Можешь сбросить мне код в личку я гляну, если считаешь что есть куда оптимизировать, но никакого "быстро" в этой задаче не нужно.
Здесь три метода (блока кода) по хорошему:
1 цикл - читаем строки и заполняем массив А
2 цикл - определяем длину строки элемента с индексом i и записываем значение в элемент с соотетствующим индексом массива чисел
3 цикл - печать.
Можно совместить 1 и 2 цикл конечно, но это сделает код хуже, хотя он станет короче на пару строк, поэтому если и можно то исключительно в учебных целях.
+3
trali vali
18 августа 2019, 12:04
а как сделать 2 цикл ? я просто сделал вот так
n[0] = s[0].length();
n[1] = s[1].length();
n[2] = s[2].length();
n[3] = s[3].length(); и т.д.
0