Python3,连接字符串

2024-04-19 10:46:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我是新来的,对Python也是新来的。所以,这是我的问题,我真的不知道从哪里开始。我创建了一个列表并编写了liste.add(str(input('input a string')))。你能帮我吗,谢谢。你知道吗

我有N strings,目标是通过连接这些字符串来获得最大值。如果我们想在字符串“A”之后添加字符串“B”,它们应该满足以下规则:

“A”在词汇上应小于“B”。你知道吗

“A”的某些后缀(最小长度为1)应与“B”的某些前缀相同。例如:字符串“abaca”的后三个字符与字符串“acaba”的前三个字符相同。你知道吗

●将字符串“A”“B”串联后,我们得到的点数等于它们重叠的长度(例如上面的3)

Range 1 ≤ N ≤ 500

1 ≤ | Si | ≤ 500 (Length of any string)

输入格式:

第一行是number(字符串数)。下一行将有我们的字符串(它们都只包含小写英文字符)

输出格式:

在单行中,打印用户可以获得的最大点数。你知道吗

Sample Input : 4 a ba ab acaba

Sample Output : 3

说明:

使用a-acaba-ba顺序,用户可以获得1+2=3分。你知道吗


Tags: sample字符串用户add列表inputstring格式
1条回答
网友
1楼 · 发布于 2024-04-19 10:46:11

首先,我继续并得到一些样本代码在我的机器上运行,以满足您的输入需求。我还冒昧地添加了一些补充,以确保您的输入要求得到充分满足。以下是我的结果:

import itertools
n = int(input('Number of strings: '))
while n not in range(1,501):
    print('Error, new number needed')
    n = int(input('Number of strings: '))
strings = []
a = 0
for i in range(0,n):
    string = str(input('String: '))
    while len(strings[a]) < len(string):
        print('Error: new string must be longer than previous input')
        string = str(input('String: '))
    strings.append(string)

如果你注意到了,我进口了itertools。这是因为如果您希望列表中的每个字符串组合,itertools将帮助您完成这项工作。我还提供了在Get every combination of strings上找到的代码(如果你点击它,它将带你进入页面),他们在那里讨论了这个主题。我不是itertools方面的专业人士,但希望随附的代码应该是一个很好的飞跃:

S = set(['a', 'ab', 'ba'])

collect = set()
step = set([''])
while step:
    step = set(a+b for a in step for b in S if len(a+b) <= 6)
collect |= step

print sorted(collect)

如果你还有其他问题,请告诉我。快乐编程!你知道吗

相关问题 更多 >