【发布时间】:2017-09-27 20:45:33
【问题描述】:
杰克和丹尼尔是朋友。他们都喜欢字母,尤其是大写字母。 他们正在从报纸上剪下大写字母,每个人都将自己的字母集合存放在不同的堆栈中。 美好的一天,摩根拜访了杰克和丹尼尔。他看到了他们的收藏。摩根想知道由这两个集合组成的字典上最小的字符串是什么。当它在堆栈的顶部时,他可以从集合中取出一封信。 此外,Morgan 想要使用男孩收藏中的所有字母。
输入格式
第一行包含测试用例的数量,t。 接下来的每两行都有这样的格式:第一行包含字符串a,第二行包含字符串b。
在新行中为每个测试用例输出字典顺序最小的字符串。
示例输入
2
杰克
丹尼尔
ABACABA
ABACABA
样本输出
达杰克尼尔
AABABACABACABA
这是我的方法:
t = int(raw_input())
for _ in range(t):
a = raw_input()
b = raw_input()
i = 0
j = 0
prev = 0
res = ""
while i < len(a) and j < len(b):
if a[i:] < b[j:]:
res += a[i]
i += 1
prev = 0
elif a[i:] > b[j:]:
res += b[j]
j += 1
prev = 1
else:
if prev == 0:
res += a[i]
i += 1
prev = 0
else:
res += b[j]
j += 1
prev = 1
print res + a[i:]+b[j:]
【问题讨论】:
-
你的方法有什么问题?到目前为止,您尝试了哪些方法来解决您面临的问题?
-
这里有实际问题,还是只是作业问题?
-
我能够清除上述两个测试用例,但是当我尝试执行这些测试用例时它开始失败 2 BBBABA BBBABB BBBABB BBBABA 我应用的逻辑有问题吗? , 不,这不是作业问题,我只是在练习字符串问题,无法完成这个问题。谢谢@ilim
-
对于 BBBABA BBBABB,您的程序将打印 BBBABABBBABB。这不是正确的答案吗?