Найти - Пользователи
Полная версия: Пожалуйста, переведите с Паскаля на Пайтон
Начало » Центр помощи » Пожалуйста, переведите с Паскаля на Пайтон
1
Fizik
Здравствуйте, программисты! Пожалуйста, помогите перевести решение с Паскаля на Пайтон
Условие задачи: преобразовать строку так, чтобы буквы каждого слова в ней были отсортированы по алфавиту.
Решение на Паскале:
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.
terabayt
>>> a = 'hello world'
>>> b = sorted(a)
>>> b
[' ', 'd', 'e', 'h', 'l', 'l', 'l', 'o', 'o', 'r', 'w']
>>> ''.join(b)
dehllloorw
Shaman
Fizik
Пожалуйста, помогите перевести решение с Паскаля на Пайтон
А переводить нужда какая? Может лучше по-новой написать?
py.user.next
Fizik
преобразовать строку так, чтобы буквы каждого слова в ней были отсортированы по алфавиту
>>> import re
>>> 
>>> s = 'abcabc defdef ghighi'
>>> 
>>> out = re.sub(
...     r'\w+',
...     lambda mo: ''.join(sorted(mo.group())),
...     s
... )
>>> 
>>> out
'aabbcc ddeeff gghhii'
>>>
terabayt
код на паскалея не смог запустить, а разбираться нету времени
лучше, следующий раз, еще и несколько примеров вставляйте
py.user.next
>>> import re
>>> 
>>> s = 'hello_world'
>>> 
>>> out = re.sub(
...     r'\w+',
...     lambda mo: ''.join(sorted(mo.group())),
...     s
... )
>>> 
>>> out
'_dehllloorw'
не знаю как у автора, но мне кажется что символ нижнего подчеркивания говорит о новом слове
py.user.next
terabayt
символ нижнего подчеркивания говорит о новом слове
А где гарантия, что это всё не одно слово?
terabayt
py.user.next
А где гарантия, что это всё не одно слово?
1. а где гарантия что через дефис это все не одно слово?
2. украинский знаете? слово “ п'ять ” тоже два слова?
py.user.next
terabayt
1. а где гарантия что через дефис это все не одно слово?
В простейшем случае есть слова, состоящие из букв. Чем они разделены? Конечно же пробелами. :)
А вообще, слово должно быть определено точно. Можно вообще написать h_e_l_l_o__w_o_r_l_d - те же два слова.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB