没有参加这次的笔试,因为不敢。 按照上面的题目理解,我也尝试给出一个Solution。 基本思路: 1. s1元素的最后元素在s2中找到对应位置; 2. 在s2对应位置后面的元素; 3. 在s1的这个元素被选中,转移到s1的末尾; 4. 直到s1和s2完全相同,则输出移动的步数。 另外,我觉得很多时候要提前想Testcase;如果在线编程测试时,哪些没有通过的例子能显示出来就好了——就想LeetCode的环境,我觉得难度会降不少。 show the code ``` def moves(sa, sb):     steps = 0     if len(sa)!=len(sb)&nbs***bsp;set(sa)!=set(sb):         return 0 # impossible     else:         sa = list(sa)         sb = list(sb)         while sa!=sb:             try:                 moveC = sb[sb.index(sa[-1])+1]             except IndexError:                 moveC = sa[0]                          sa.remove(moveC)             sa.append(moveC)             steps += 1     return steps if __name__ == "__main__":     s1 = 'aac'     s2 = 'caa'     print(moves(s1, s2)) ```