Превращать string в новый string

Цель этого упражнения состоит в том, чтобы превращать string в одну новый string, где каждый характер нового string "(" если этот характер появляется только однажды в первоначальной цепи, или ")" если этот характер появляется больше одного раза в первоначальном string. Будут должны игнорироваться прописные буквы, чтобы определять, если характер повторен или нет.

Примеры:

"din"      =>  "((("
"recede"   =>  "()()()"
"Success"  =>  ")())())"
" ( ( )"   =>  ")))))(" 

Проблема моей программы состоит, в котором символы "(" и ")" они взяты как будто это были единственный повторенный характер. Вместо того, чтобы получать

" ( ( )"     =>  ")))))(" 

я получаю

" ( ( )"     =>  "))))))" 

Здесь мое предложение программы:

function duplicate_encode($word)
{
        for ($i = 0; $i <= strlen($word) - 1; $i++) {
            $word = (substr_count(strtolower($word),$word[$i]) == 1) ? str_replace($word[$i],'(',$word) : str_replace($word[$i],')',$word);
        }
        return $word;
}
echo duplicate_encode($word);
1
задан 19.03.2019, 21:22
1 ответ

Проблема - что estГЎs изменяя цепь и используя одновременно один carГЎcter, что является частью цепи как указательный знак repeticiГіn, если ты используешь другой тип характера verГЎs, что функционирует, например:

$word = (substr_count(strtolower($word),$word[$i]) == 1) ? str_replace($word[$i],'|',$word) : str_replace($word[$i],'_',$word);

AhГ - tendrГЎs результат:

_____|

ты Можешь изменять ее funciГіn asГ, - если ты хочешь использовать их parГ©ntesis. AquГ - функционируй, потому что мы работаем на новой цепи, которую мы изменяем, в конце концов мы возвращаем ее:

function duplicate_encode($word)
{
    $s="";
        for ($i = 0; $i <= strlen($word) - 1; $i++) {

            $s.= (substr_count(strtolower($word),$word[$i]) == 1) ? "(" : ")";
        }
        return $s;
}

Или таким образом: Вышедшие

function duplicate_encode($word) {
    $array = str_split($word);
    $s="";
    foreach ($array as $char) {
        $s.= substr_count($word,$char)===1 ? "(" : ")";
    }
    return $s;
}

:

)))))(
1
ответ дан 02.12.2019, 05:27

Теги

Похожие вопросы