杰克和丹尼尔是朋友。它们都像字母,特别是大写字母。 他们正在从报纸上剪下大写字母,并且每个人都将他们的信件集合存储在不同的堆栈中。 美好的一天,摩根访问了杰克和丹尼尔。他看到了他们的藏品。摩根想知道由这两个系列组成的字典最小字符串是什么。当它位于堆栈顶部时,他可以从集合中收集一封信。 此外,摩根希望使用男孩们的所有信件。集合。
输入格式
第一行包含测试用例数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:]
答案 0 :(得分:0)
考虑a = "C"
和b = "CA"
时的情况。您的程序输出为"CCA"
,但正确答案为"CAC"
。问题是您的代码优先于"C"
而不是"CA"
,因为"C" < "CA"
。