from itertools import cycle
keyword = "gcse"
message = "python"
iterator = cycle(keyword)
newkeywordshouldbe = ''.join(iterator.next() for i in range(len(message)))
keyword = "gcse"
message = "python"
newkeywordshouldbe = "gcsegc"
keywordLen = len(keyword)
messageLen = len(message)
if keywordLen == messageLen:
newkeyword = keyword
elif keywordLen > messageLen:
newkeyword = keyword[:messageLen]
elif keywordLen < messageLen:
# Use keyword in its entirety as many times as possible to match
# message's length; then match the rest of message's length with
# as many of keyword's characters as needed.
newkeyword = ''.join(keyword * (messageLen / keywordLen)) + \
keyword[:messageLen - keywordLen]
print newkeyword
使用模运算(
%
)和数组索引。你知道吗下面的交互式Python会话(已经声明并初始化了
keyword
、message
、n
和m
)说明:另一种解决方案是像这样使用^{} 函数:
请尝试以下操作:
您可以在相关的Ideone demo中运行上面的代码。你知道吗
此外,您可以从更少中挤出更多,并使解决方案更Pythonic(例如,像mpcabd's);但是这非常清楚地表达了给定三种逻辑可能性的逻辑:
keyword
和message
长度相同。你知道吗keyword
比message
短。你知道吗keyword
比message
长。你知道吗即使采用一种更为python的解决方案,理解其基本逻辑也很重要。你知道吗
相关问题 更多 >
编程相关推荐