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的时候运行时间稍微有点长。

  • 相关阅读:
    编译KlayGE所需要的第三方库和工具下载
    KlayGE启用顶级域名
    Sophus和Eigen 李群李代数 简单介绍
    G2O曲线拟合1
    梯度下降
    PCL1.8单张图点云转换显示
    双目测距demo
    Kinect基于微软SDK彩图与深度图对齐
    单例模式
    zendstudio卡死
  • 原文地址:https://www.cnblogs.com/Frandy/p/google_code_jam_alien_language_python.html
Copyright © 2011-2022 走看看