Code Jam - Reverse Words for Python

和前一篇Store Credit一样,是Africa 2010, Qualification Round的题目,现在用于练习

Problem

给出一个用空格分开的单词列表,每行包括L个字母和W个单词。每行仅包含字母和空格,单词之间的空格有且仅有一个。

Input

第一行给出test case的数量N

接下来N行每行包括一个用空格分开的单词列表

Output

对于每个test case,输出一行“Case #x:",之后在该行以相反的顺序输出给定的单词列表。

Sample

Input 
Output 
3
this is a test
foobar
all your base
Case #1: test a is this
Case #2: foobar
Case #3: base your all

源代码:

方法一:

fin = open('B-large-practice.in', 'r')
fout = open('B-large-practice.out', 'w')

N = int(fin.readline())
for cases in xrange(N):
    words = fin.readline().split()
    L = len(words)
    if L != 1:
        for i in xrange(L):
            if i >= L - i -1:
                break
            tmp = words[i]
            words[i] = words[L - i -1]
            words[L - i -1] = tmp
    fout.write("Case #%d:" %(cases + 1))
    for i in xrange(L):
        fout.write(" %s" %(words[i]))
    fout.write("\n")

fin.close()
fout.close()

这道题用Python实现起来比较方便,读入一行数据后,用split方法隔开(默认以空格为间隔符,与题目相吻合),之后将单词顺序返过来即可。

方法二:

也可以在不改变输入的列表的情况下直接用

    fout.write("Case #%d:" %(cases + 1))
    for i in xrange(L):
        fout.write(" %s" %(words[-(i + 1)]))
    fout.write("\n")
方法得到结果。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值