Funbit
Новичок
быстрая перекодировка строки по таблице
Всем доброго дня!
Вопрос заключается в следующем. На входе есть строка (длиной около 800 000 символов). Нужно найти наиболее быстрый способ сделать перекодировку всех символов строки по таблице, т.е. нечто похожее на перекодирку Win->Koi и т.п., только по своей таблице.
Например,
пусть есть строка на входе: "ABCAABD" ,
таблица перекодировки:
A->1,
B->2,
C->3,
D->4,
соответственно, после перекодировки должна получиться другая строка:
"1231124".
Сейчас остановился на следующем варианте:
Вариант работает, но для строки длиной в 850 000 символов код выполняется около 2-3 секунд. Есть ли более быстрые способы такого преобразования ? Или это предел скорости ?
Заранее спасибо.
Всем доброго дня!
Вопрос заключается в следующем. На входе есть строка (длиной около 800 000 символов). Нужно найти наиболее быстрый способ сделать перекодировку всех символов строки по таблице, т.е. нечто похожее на перекодирку Win->Koi и т.п., только по своей таблице.
Например,
пусть есть строка на входе: "ABCAABD" ,
таблица перекодировки:
A->1,
B->2,
C->3,
D->4,
соответственно, после перекодировки должна получиться другая строка:
"1231124".
Сейчас остановился на следующем варианте:
PHP:
$conversion_table = array ( 'a' => chr(0),
'b' => chr(1),
'c' => chr(2),
/*... и т.д. ...*/
'z' => chr(26) );
$output_string = '';
for ($i=0; $i<strlen($input_string); $i++) {
$output_string .= $conversion_table[$input_string[$i]];
}
Заранее спасибо.
