(Я хотел прокомментировать, но это пока не позволяет мне делать это.)
Предполагая, что вы пытаетесь учиться, я решил дать вам только несколько советов, избегая при этом решения.
Могут быть более короткие способы сделать это с помощью регулярных выражений или / и некоторых методов String. Однако вы сказали, что не можете использовать регулярные выражения.
Мой совет: попытайтесь решить ее, используя разделы, которые вы уже рассмотрели . Возможно, это не самое элегантное решение, но вы можете пересмотреть его по мере продвижения. Как и предполагали другие, рекурсия может быть хорошим вариантом. Но, если вы еще не знакомы с этим, вы можете попробовать нарезать строку и объединить нужные вам части. Это можно комбинировать с бесконечным циклом, чтобы проверить, что новая строка удовлетворяет вашим условиям: но подумайте о , когда вам нужно выйти из цикла .
Также в вашем коде:
v * (count - i)
String # * фактически дает вам count - i
копий v
, соединенных вместе.