Escreva um programa que recebe do usuário uma string
, um caractere
, e uma posição I e devolve o índice da primeira posição da string onde foi encontrado o caractere C. A procura deve começar a partir da posição I.
Passo 1
O problema pede um programa que receba uma string
, um caractere
e um índice inicial
, e devolva o primeiro índice em
onde
aparece, iniciando a busca em
. O conteúdo principal é a busca linear em strings.
Passo 2
Para resolver, vamos usar a ideia da busca linear: iterar sobre cada posição de
a partir de
e comparar o caractere atual com
. Se for igual, retornamos o índice; se percorrermos toda a string sem achar, retornamos
.
Passo 3
Primeiro, validamos se
está no intervalo válido. Se
ou
comprimento de
, não faz sentido buscar e podemos retornar
imediatamente.
Em seguida, montamos um loop que vai de até
. A cada iteração, comparamos
com
.
No momento em que , interrompemos a busca e retornamos
como primeiro índice encontrado.
Se o loop terminar sem encontrar , retornamos
indicando que o caractere não aparece em
a partir de
.
Em seguida, montamos um loop que vai de
No momento em que
Se o loop terminar sem encontrar
Resposta
def find_from(S, C, I):
# Valida a posição inicial
n = len(S)
if I < 0 or I >= n:
return -1
# Valida a posição inicial
n = len(S)
if I < 0 or I >= n:
return -1
# Busca linear a partir de I
for j in range(I, n):
if S[j] == C:
return j
# Se não encontrar, retorna -1
return -1
Leitura dos dados
t = input("Digite a string: ")
c = input("Digite o caractere: ")[0]
i = int(input("Digite a posição inicial: "))
c = input("Digite o caractere: ")[0]
i = int(input("Digite a posição inicial: "))
Chamada da função e saída
encontrado = find_from(t, c, i)
print(encontrado)
print(encontrado)