0886 - Secv Cons

De la Universitas MediaWiki
Versiunea din 24 martie 2023 16:00, autor: Adina Timiș (discuție | contribuții) (Pagină nouă: ==Cerința== Se citește un șir format din cel mult 255 caractere, litere mici ale alfabetului englez. Să se determine cea mai lungă secvență din șir formată numai din consoane. ==Date de intrare== Programul citește de la tastatură un șir de caractere S. ==Date de ieșire== Programul va afișa pe ecran subșirul determinat. ==Restricții și precizări== *dacă șirul dat conține mai multe subșiruri formate numai din consoane de lungime maximă se va afișa cea m...)
(dif) ← Versiunea anterioară | Versiunea curentă (dif) | Versiunea următoare → (dif)

Cerința

Se citește un șir format din cel mult 255 caractere, litere mici ale alfabetului englez. Să se determine cea mai lungă secvență din șir formată numai din consoane.

Date de intrare

Programul citește de la tastatură un șir de caractere S.

Date de ieșire

Programul va afișa pe ecran subșirul determinat.

Restricții și precizări

  • dacă șirul dat conține mai multe subșiruri formate numai din consoane de lungime maximă se va afișa cea mai din dreapta;
  • se garantează că în șirul dat există cel puțin o consoană;

Exemplul 1

Intrare
ukdiaehldjasmfx
Ieșire
Datele de intrare corespund restricțiilor impuse.
smfx

Exemplul 2

Intrare
aeiou
Ieșire
Datele de intrare nu corespund restricțiilor impuse.

Rezolvare

#0886 - Secv Cons
def gaseste_sir(S):
    cel_mai_mare_sir = ""
    sirul_initial = ""
    vocale = "aeiou"
    for c in S[::-1]:
        if c not in vocale:
            sirul_initial = c + sirul_initial
        else:
            if len(sirul_initial) > len(cel_mai_mare_sir):
                cel_mai_mare_sir = sirul_initial
            sirul_initial = ""
    if len(sirul_initial) > len(cel_mai_mare_sir):
        cel_mai_mare_sir = sirul_initial
    return cel_mai_mare_sir

if __name__ == "__main__":
    S = input("Introduceți șirul de caractere: ")
    if all(c.isalpha() and c.islower() for c in S) and len(S) <= 255 and any(c not in "aeiou" for c in S):
        cel_mai_mare_sir = gaseste_sir(S)
        print("Datele de intrare corespund restricțiilor impuse.")
        print("Cel mai lung subșir format numai din consoane este:", cel_mai_mare_sir)
    else:
        print("Datele de intrare nu corespund restricțiilor impuse.")