Monday, September 24, 2018

[LeetCode]K-Similar Strings

这道题和Couples Holding Hands非常像,对于string A和string B,如果我们按照如下的规则建图:
  • 对于每一个坐标i,我们把A[i]对应的字符到B[i]连一条有向边
A = abcd, B = dcab

A = abcd, B = cdab


如上图所示,结果会形成多个环组成的图。而类似我们上面提到的题目,每个环需要N - 1步来去掉,具体来说,对于每一个没有A中每一个match的字符A[i],我们取A[i + 1 : end]中match B[i]的字符并且换过来,这样我们只需眼N - 1步就能去掉一个长度为N的环。时间复杂度O(N * K),K为最小的步数。代码如下:


No comments:

Post a Comment