В вашем вопросе не так много контекста.Давайте предположим, что это интервью по программированию, и вы имеете дело с языком низкого уровня, таким как C или ассемблер.Давайте также предположим, что строка имеет счетчик и / или оканчивается нулем, например, «это строка \ 0 \ 0 \ 0 \ 0»
Я бы просканировал строку от начала до конца и посчиталпробелами, давайте назовем это C. Затем я буду работать через строку на символе за раз, перемещая каждый символ вперед на позиции C.Каждый раз, когда пробел встречается, копируйте пробел вперед на C позиций, вычитайте один из C и затем перемещайте пробел на C позиций.Останов, когда C равно 0.
Здесь нули / неиспользованные представлены точкой.
this is a string.... C=3
this is a string..g.
this is a string.ng.
this is a stringing.
this is a strinring.
this is a stritring.
this is a strstring.
this is a st string.
this is a s string. C=2
this is a a string.
this is a string.
this iss a string. C=1
this iis a string.
this is a string. C=0