选择下一个词典编写的最短元素

时间:2017-09-27 20:45:33

标签: python string algorithm

杰克和丹尼尔是朋友。它们都像字母,特别是大写字母。 他们正在从报纸上剪下大写字母,并且每个人都将他们的信件集合存储在不同的堆栈中。 美好的一天,摩根访问了杰克和丹尼尔。他看到了他们的藏品。摩根想知道由这两个系列组成的字典最小字符串是什么。当它位于堆栈顶部时,他可以从集合中收集一封信。 此外,摩根希望使用男孩们的所有信件。集合。

输入格式

第一行包含测试用例数t。 接下来的两行都有这样的格式:第一行包含字符串a,第二行包含字符串b。

在新行中为每个测试用例输出按字典顺序排列的最小字符串。

示例输入

2

JACK

DANIEL

ABACABA

ABACABA

示例输出

DAJACKNIEL

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:]

1 个答案:

答案 0 :(得分:0)

考虑a = "C"b = "CA"时的情况。您的程序输出为"CCA",但正确答案为"CAC"。问题是您的代码优先于"C"而不是"CA",因为"C" < "CA"