zoukankan      html  css  js  c++  java
  • google code jam exercise——Alien Language

    进入Qualification Round 2009的试题,第一道题Alien Language,模式匹配的问题,既然选择了Python,可以使用Regular Expression正则表达式,那就是太简单了。

    主要问题就在于把给定的pattern转换为regular expression,把"("和")"换成"["和"]"就可以了,代码如下:

    #!/usr/bin/python
    #
    encoding:UTF-8
    #
    Filename:AlienLanguage.py

    import sys
    import re

    inname = "input.txt"
    outname = "output.txt"
    if len(sys.argv)>1:
    inname = sys.argv[1]
    outname = inname.rstrip(".in")
    outname = outname + ".out"
    fin = open(inname,"r")
    fout = open(outname,"w")

    caseNum = 0

    line = fin.readline()
    ndata = [int(val) for val in line.split()]
    letterNum = ndata[0]
    testCaseNum = ndata[1]
    patternNum = ndata[2]

    caseData = []
    for i in range(testCaseNum):
    line = fin.readline()
    line = line.rstrip("\n")
    caseData.append(line)

    patternData = []
    for i in range(patternNum):
    line = fin.readline()
    line = line.rstrip("\n")
    line = line.replace("(","[")
    line = line.replace(")","]")
    patternData.append(line)

    for pattern in patternData:
    caseNum = caseNum + 1
    cnt = 0
    for line in caseData:
    if re.match(pattern,line):
    cnt = cnt + 1
    answer = "Case #%d: %d\n" %(caseNum,cnt)
    fout.write(answer)

    fin.close()
    fout.close()

    结果测试正确。
    只是在测试large case的时候运行时间稍微有点长。

  • 相关阅读:
    左耳听风
    极客时间-算法
    极客时间-左耳听风阅读笔记
    涨知识
    学做饭
    开发流程
    线上问题复盘
    反思学习复习练习
    系统安全(转)
    单元测试
  • 原文地址:https://www.cnblogs.com/Frandy/p/google_code_jam_alien_language_python.html
Copyright © 2011-2022 走看看