Итак, как вы видите из своего кода, вы пытаетесь сгенерировать набор подстрок, поэтому, если ваш массив был abc
, то подстроки были бы a, ab, abc, b, bc, c
.Затем вы пытаетесь посчитать, сколько раз символ появляется, так что если ch = 'b'
, то результат будет 4. Итак, вы подсчитываете количество строк, содержащих ch.
Так что один из способов решения этой проблемыс меньшим количеством циклов будет распознавать для каждого значения i
, вы создаете строки, добавляя символ в последнюю строку, и если предыдущая строка содержала n
копий ch
, то следующая строка содержит n
илиn+1
копирует в зависимости от фактического значения.
Еще один возможный подход для перехода к одному циклу - цикл по массиву один раз, и каждый раз, когда вы обнаружите, что символ ch
вычисляет, сколько подстрок будетсодержать символ в этой позиции.Таким образом, для abc
примера 2 из 3 строк, начинающихся в позиции 0, и 2 строк, начинающихся в позиции 1, будет содержать значение.