1. Python / Говнокод #9052

    −87

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    #!/usr/bin/python
    import itertools, math, os, random, re, sys
    random.seed (1234)
    
    while True:
            s = sys.stdin.readline ().strip ()
            if s == '':
                    s = sys.stdin.readline ().strip ()
                    if s == '':
                            break
            t = sys.stdin.readline ()
            r = sys.stdin.readline ()
            s = [c for c in s]
            t = [c for c in t]
            r = [c for c in r]
            s.sort ()
            t.sort ()
            r.sort ()
            ok = True
            for c in r:
                    if len (s) > 0 and c == s[0]:
                            s = s[1:]
                    elif len (t) > 0 and c == t[0]:
                            t = t[1:]
                    else:
                            ok = False
            ok = ok and len (s) == 0 and len (t) == 0
            if ok:
                    print 'YES'
            else:
                    print 'NO'
    
    #Люди делают так:
    #a, b, c = (raw_input() for i in range(3))
    #print 'YES' if sorted(a + b) == sorted(c) else 'NO'

    Задача такая: даны три строки: a, b и c
    проверить что третья может быть получена из двух других преремешиванием

    Источник:
    codeforces, Codeforces beta 101 round, 1018183

    Запостил: VisualPaul, 08 Января 2012

    Комментарии (9) RSS

    • >s = [c for c in s]
      >t = [c for c in t]
      >r = [c for c in r]
      Лол
      Ответить
      • От К.О. Человек не знает о sorted, а у строки нет функции sort. Вот так он решил преобразовать str в list
        Ответить
    • Сразу видно, что он только вчера кодил на похапе.
      Ответить
    • from collections import Counter
      
      def check_str(str_, charset):
          counter = Counter()
          for c in charset:
              counter[c]+=1
          for c in str_:
              counter[c]-=1
          return all( x>=0 for x in counter.itervalues() )

      Так чтоль?
      Ответить
      • [quote]Задача такая: даны три строки: a, b и c
        проверить что третья может быть получена из двух других преремешиванием
        [/quote]
        А лишние буквы могут быть?
        Ответить
    • показать все, что скрытоvanished
      Ответить

    Добавить комментарий