Ir para conteúdo
Fórum Script Brasil
  • 0

duvida iniciante Metodos STRING


pest4

Pergunta

Boas a todos, estou a estudar python, e foram-me propostos exercicios para revisão de ciclos for e métodos string, resolvi vários exercicios sem ajuda ou algum tipo de dica, mas fiquei parado num que o mais provável é ter uma resolução fácil mas não estou a lá chegar. O enunciado é o seguinte:

Sopa de letras. Crie uma função sopa(str)-> que dada uma string imprima

uma tabela como descrita abaixo:

(a) Dada a palavra faça o shift para a direita

>>> sopa(’abcdef’)

abcdef

bcdefa

cdefab

defabc

efabcd

fabcde

:wacko:

Ou seja eu tenho de criar uma função em que inserindo uma string ela faz-me um shift para a direita...Alguma dica? Ficaria eternamente grato. Obrigado

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0
A dica é o fatiamento (slicing) de strings. Python 2:

s = raw_input("String: ")
for i in s[:-1]:
    s = s[1:] + s[0]
    print s
Python 3:
s = input("String: ")
for i in s[:-1]:
    s = s[1:] + s[0]
    print (s)

Muito obrigado tinha ideia que era assim mas não sabia como aplicar o ciclo for...estou a perceber os slices que colocaste já abri o idle e testei esse e de outras maneiras, mas se eu quiser fazer um shift ao centro para me fazer um print semelhante a este:

abcdef

bcafde

cabefd

já não percebo outra vez....desculpa lá e obrigado pela paciência desde já.

Link para o comentário
Compartilhar em outros sites

  • 0

Aí já é um pouco mais difícil (Python 3):

def sopa(s, i):
    print (s)
    for j in range(i):
        s = s[1: int(len(s)/2)] + s[0] + s[-1:] + s[int(len(s)/2): -1]
        print (s)

s = "abcdef"
i = 2

sopa(s, i)

Link para o comentário
Compartilhar em outros sites

  • 0

bom dia, no seguimento de métodos STRING tenho uma duvida sobre esse assunto estou a tentar preceber como e que defino o simétrico de uma STRING por exemplo:

São exemplos de palavras simétricas ’abba’,’a’,’aa’,’aba’ ou ’aabbaa’, não são

palavras simétricas ’ab’,’abca’.

Crie uma função booleana sim(str)-> bool que devolve True se a string

define uma palavra simétrica.

Se alguém me poder elucidar sobre este problema. Obrigado

Link para o comentário
Compartilhar em outros sites

  • 0
coolbee, use a técnica de fatiamento nos exemplos anteriores.

por exemplo

def sim(s):

s = raw_input("Valor Lógico para palavras simétricas: ")

for i in s[]:

s =

i =

print s

mas preciso de dar slice no meio da palavra e certas palavras são maiores que outras para alem do mais se não for par a nivel de numero de letras nunca e simetrica

como e que defino o s de modo a que independentemente do tamanho da palavra ele tem de cortar ao meio e avaliar se a segunda parte da palavra invertida e igual a primeira parte?

Editado por coolbee130
Link para o comentário
Compartilhar em outros sites

  • 0

Uma técnica interessante é reduzir ao máximo a complexidade do problema e uma vez resolvido ir aumentando a complexidade aos poucos. Neste caso comece com uma palavra de tamanho fixo e par, por exemplo 4. Depois faça com tamanho fixo impar e por último com tamanho variável.

Editado por Kakao
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...