Problème B de l'ARC # 008

Oui. http://arc008.contest.atcoder.jp/

Politique approximative Visualisez le kit alphabet du début à la fin. S'il correspond au caractère du nom, supprimez-le. Même si j'ai utilisé le kit alphabet, si la longueur du nom n'a pas changé par rapport à avant le début, je ne peux pas le faire pour toujours, donc -1 Si la longueur diminue, augmentez le nombre de 1 et redémarrez le kit alphabet depuis le début ~

op.py


#!/usr/bin/env python
# -*- coding:utf-8 -*-
import sys
import io
import re
import math

(n,m) = map(int, raw_input().split())
#o = map(str, raw_input().split())
name = list(raw_input())
#p = map(str, raw_input().split())
kit = list(raw_input())
ans=0
zen=0
stp=len(name)
while 1:
    for i in range(len(kit)):
        if kit[i] in name: name.remove(kit[i])
    ans+=1
# !=La condition de est la contre-mesure lorsque le nom devient 0 dans le premier tour
    if stp==len(name) or (zen==len(name) and len(name)!=0):
        ans = -1
        break
    elif len(name)==0:
        break
    zen=len(name)
print ans

J'ai vu la réponse que vous utilisez un module que vous n'avez jamais vu, alors prenez note

Note.py


>>> from collections import Counter
>>> a=Counter(raw_input())
abcdefgh
>>> a
Counter({'a': 1, 'c': 1, 'b': 1, 'e': 1, 'd': 1, 'g': 1, 'f': 1, 'h': 1})

>>> a['a']
1
## [' ']Il semble que vous pouvez obtenir le nombre d'éléments en mettant le nom de l'élément dans

type(a) #<class 'collections.Counter'>

Recommended Posts

Problème B de l'ARC # 008
Problème de probabilité
Fiche d'apprentissage Python (problème paiza: B: exercice de calcul)
Fiche d'apprentissage Python (problème de paiza B: exercice de calcul)