2997 - Prescurtat
De la Universitas MediaWiki
Cerință
Scrieți funcția cu următorul antet:
void Prescurtat(char s[])
Funcția primește ca parametru un text de cel mult 50 de caractere, alcătuit din cuvinte separate prin câte un spațiu și formate din litere mari ale alfabetului englez, urmate eventual de caracterul . (punct), dacă sunt scrise prescurtat. Textul reprezintă numele unei instituții de învățământ și doar cuvintele din mulțimea {COLEGIUL, LICEUL, NATIONAL, TEORETIC} pot fi prescurtate, eliminându-se ultimele lor litere. Funcția va returna tot prin intermediul parametrului s numele instituției scris fără prescurtări.
Restricții de precizări
- Lungimea inițială a șirului s va fi de cel mult 50, iar la final de cel mult 100.
- Puteți utiliza funcțiile pentru șirurile de caractere din biblioteca cstring
Exemplul 1
- Intrare
- COLEG. NAT. DE INFORMATICA
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- COLEGIUL NATIONAL DE INFORMATICA
Rezolvare ver. 1
def validare(s):
return s.isalpha()
def Prescurtat(s):
con = "" # Variabila pentru stocarea sirului prescurtat
tokens = s.split(" ") # Impartirea sirului s in token-uri folosind spatiul ca delimitator
for token in tokens:
lp = len(token) # Lungimea token-ului curent
if token[lp-1] == '.': # Verificam daca token-ul se termina cu punct
if token[:2] == 'CO': # Verificam daca primele doua caractere ale token-ului sunt 'CO'
con += "COLEGIUL " # Adaugam la sirul prescurtat 'COLEGIUL '
elif token[:2] == 'LI': # Verificam daca primele doua caractere ale token-ului sunt 'LI'
con += "LICEUL " # Adaugam la sirul prescurtat 'LICEUL '
elif token[:2] == 'NA': # Verificam daca primele doua caractere ale token-ului sunt 'NA'
con += "NATIONAL " # Adaugam la sirul prescurtat 'NATIONAL '
elif token[:2] == 'TE': # Verificam daca primele doua caractere ale token-ului sunt 'TE'
con += "TEORETIC " # Adaugam la sirul prescurtat 'TEORETIC '
else:
con += token + " " # Daca token-ul nu se termina cu punct, il adaugam la sirul prescurtat cu un spatiu la final
con = con.rstrip() # Stergem spatiile de la sfarsitul sirului prescurtat
return con
if __name__ == "__main__":
s = input("Introduceti sirul de caractere: ") # Citim sirul de la tastatura
print("Inainte:", s) # Afisam sirul inainte de prescurtare
s = Prescurtat(s) # Apelam functia Prescurtat pentru a prescurta sirul
print("Dupa:", s) # Afisam sirul dupa prescurtare
if validare(s):
print("Datele introduse corespund restricțiilor impuse.")
else:
print("Datele introduse nu corespund restricțiilor impuse.")