Форум сайта python.su
Здравствуйте, программисты! Пожалуйста, помогите перевести решение с Паскаля на Пайтон
Условие задачи: преобразовать строку так, чтобы буквы каждого слова в ней были отсортированы по алфавиту.
Решение на Паскале:
Program ABC;
uses crt;
const
razd:set of char=;
var
st,buf:string;
function sort(st:string):string;
var i,j:integer;
b:char;
begin
for i:=length(st) downto 1 do for j:=1 to i-1 do if st > st then
begin
b:=st;
st:=st;
st:=b;
end;
begin
clrscr;
readln(st);
repeat
if (st in razd) or (length(st)=0) then while st in razd do delete(st,1,1)
else
begin
while (not (st in razd)) and (length(st)>0) do
begin
buf:=buf+st;
delete(st,1,1);
end;
write(sort(buf),' ‘);
buf:=’';
end;
until (length(st)=0) and (length(buf)=0);
readln;
end.
Офлайн
>>> a = 'hello world' >>> b = sorted(a) >>> b [' ', 'd', 'e', 'h', 'l', 'l', 'l', 'o', 'o', 'r', 'w'] >>> ''.join(b) dehllloorw
Отредактировано terabayt (Янв. 27, 2015 13:05:02)
Офлайн
FizikА переводить нужда какая? Может лучше по-новой написать?
Пожалуйста, помогите перевести решение с Паскаля на Пайтон
Офлайн
Fizik
преобразовать строку так, чтобы буквы каждого слова в ней были отсортированы по алфавиту
>>> import re >>> >>> s = 'abcabc defdef ghighi' >>> >>> out = re.sub( ... r'\w+', ... lambda mo: ''.join(sorted(mo.group())), ... s ... ) >>> >>> out 'aabbcc ddeeff gghhii' >>>
Офлайн
код на паскалея не смог запустить, а разбираться нету времени
лучше, следующий раз, еще и несколько примеров вставляйте
py.user.next
>>> import re >>> >>> s = 'hello_world' >>> >>> out = re.sub( ... r'\w+', ... lambda mo: ''.join(sorted(mo.group())), ... s ... ) >>> >>> out '_dehllloorw'
Офлайн
terabaytА где гарантия, что это всё не одно слово?
символ нижнего подчеркивания говорит о новом слове
Офлайн
py.user.next1. а где гарантия что через дефис это все не одно слово?
А где гарантия, что это всё не одно слово?
Офлайн
terabaytВ простейшем случае есть слова, состоящие из букв. Чем они разделены? Конечно же пробелами. :)
1. а где гарантия что через дефис это все не одно слово?
Офлайн