1526 - Align

From Bitnami MediaWiki
Revision as of 18:57, 30 January 2024 by Cristina94 (talk | contribs) (Pagină nouă: ==Enunţ== Pe lângă marea lui pasiune pentru informatică, lui Andino îi place să se joace cu fişierele. El deschide la întâmplare fişiere text şi se întreabă dacă poate alinia textul la stânga sau la dreapta. Cu toate că el este la curent cu tot ce se întâmplă în domeniul informaticii, el utilizează un editor de text primitiv care nu are funcţii de aliniere, aşa că vă roagă pe voi să-l ajutaţi. ==Cerinţă== Să se alinieze un text dat la stânga s...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Enunţ

Pe lângă marea lui pasiune pentru informatică, lui Andino îi place să se joace cu fişierele. El deschide la întâmplare fişiere text şi se întreabă dacă poate alinia textul la stânga sau la dreapta. Cu toate că el este la curent cu tot ce se întâmplă în domeniul informaticii, el utilizează un editor de text primitiv care nu are funcţii de aliniere, aşa că vă roagă pe voi să-l ajutaţi.

Cerinţă

Să se alinieze un text dat la stânga sau la dreapta.

Date de intrare

Fişierul de intrare align.in conţine pe prima linie numărul n, numărul de linii din fişierul text şi un caracter x. Dacă x este 'S', atunci textul se va alinia la stânga, iar dacă x este 'D', se va alinia la dreapta. Pe următoarele n linii se citeşte textul din fişierul lui Andino.

Date de ieşire

Fişierul de ieşire align.out va conţine pe n linii textul aliniat.

Restricţii şi precizări

  • 1 ≤ n ≤ 100
  • lungimea unei linii nu va depăşi 200
  • dacă îl veţi ajuta pe Andino, veţi primi 100 de puncte şi probabil îl veţi convinge pe Andino să folosească un alt editor de texte

Exemplu 1

align.in
3 S
text linia 1
text pentru linia 2
textul pentru linia trei
align.out
text linia 1
text pentru linia 2
textul pentru linia trei

Explicaţie

Textul a fost aliniat la stanga.

Exemplu 2

align.in
3 D
text linia 1
text pentru linia 2
textul pentru linia trei
align.out
text linia 1
text pentru linia 2
textul pentru linia trei

Explicaţie

Textul a fost aliniat la dreapta.

Rezolvare

<syntaxhighlight lang="python" line>

  1. 1526 align

def align_text(lines, alignment):

   max_length = max(len(line) for line in lines)
   aligned_text = []
   for line in lines:
       if alignment == 'S':
           aligned_text.append(line.ljust(max_length))
       elif alignment == 'D':
           aligned_text.append(line.rjust(max_length))
   return aligned_text


def main():

   with open("align.in", "r") as input_file, open("align.out", "w") as output_file:
       n, alignment = input_file.readline().strip().split()
       n = int(n)
       lines = [input_file.readline().strip() for _ in range(n)]
       aligned_text = align_text(lines, alignment)
       for aligned_line in aligned_text:
           output_file.write(aligned_line + "\n")


if __name__ == "__main__":

   main()

</syntaxhighlight>