[PYTHON] Mehrstufige Auswahl

Es gab einige Testfälle, die an diesem Tag nicht bestanden wurden. Mit genau der gleichen Logik habe ich es in Python umgeschrieben und der Test bestanden. (Ich kann die Ursache immer noch nicht herausfinden, weil es in Ruby nicht funktioniert hat ^^;)

Das Problem ist die folgende URL http://nabetani.sakura.ne.jp/hena/ord24eliseq/

# -*- coding: utf-8 -*-

import sys
import math
from scipy.special import cbrt
from string import rstrip
max = 10000

sqrts = []
cbrts = []

for i in range(1,max):
  if math.sqrt(i) - int(math.sqrt(i)) == 0:
    sqrts.append(i)

  if cbrt(i) - int(cbrt(i)) == 0:
    cbrts.append(i)

if __name__ == '__main__':
  while True:
    input = list(sys.stdin.readline().rstrip())
    ret = range(1,max)
    for x in input:
      count = 0
      tmp = list(ret)

      if x == 'S':
        for r in ret:
          for s in sqrts:
            if r == s:
              tmp[count + 1] = None

          count += 1

        ret = []
        for y in tmp:
          if y is not None:
            ret.append(y)
          
                        
      elif x == 's':
        for r in ret:
          for s in sqrts:
            if r == s:
              tmp[count - 1] = None

          count += 1

        ret = []
        for y in tmp:
          if y is not None:
            ret.append(y)
            
      elif x == 'C':
        for r in ret:
          for s in cbrts:
            if r == s:
              tmp[count + 1] = None

          count += 1

        ret = []
        for y in tmp:
          if y is not None:
            ret.append(y)
            
      elif x == 'c':
        for r in ret:
          for s in cbrts:
            if r == s:
              tmp[count - 1] = None

          count += 1

        ret = []
        for y in tmp:
          if y is not None:
            ret.append(y)
            
      elif x == 'h':
        ret = ret[100:]
      else:
        for y in range(0,len(ret),int(x)):
          tmp[y-1] = None
          
        ret = []

        for y in tmp:
          if y is not None:
            ret.append(y)
      
    print ','.join(str(x) for x in ret[0:10])

Recommended Posts

Mehrstufige Auswahl
Mehrstufige Auswahl (C # / Python) (alt)
SelectionSort
Mehrstufige Auswahl (Go / C # / Ruby / Python)
Feature-Auswahldatensätze