代码题求助
#代码问题##C++##笔试#
小强拥有一种神奇的魔法:对于一个字符串,他能在花费1的代价下把任何位置的任何字符移动到字符串末端。现给定两个长度相同的小写字符串S和T,请你计算出小强至少需要使用多少次魔法将S变成T?
输入描述:第一行包含一个字符串S 第二行包含一个字符串T ,其中S,T只包含小写字母
输出描述:一行一个数字表示答案,如果不能从S变成T则输出-1
示例:
输出
acdk
ckad
输出
2
小强拥有一种神奇的魔法:对于一个字符串,他能在花费1的代价下把任何位置的任何字符移动到字符串末端。现给定两个长度相同的小写字符串S和T,请你计算出小强至少需要使用多少次魔法将S变成T?
输入描述:第一行包含一个字符串S 第二行包含一个字符串T ,其中S,T只包含小写字母
输出描述:一行一个数字表示答案,如果不能从S变成T则输出-1
示例:
输出
acdk
ckad
输出
2
全部评论
计数判-1,然后两个指针i,j遍历S和T,如果s[i]!=t[j],由于只有移到最后的操作,那么s[i]不可能不移动,结果+1然后i++,相等则跳过(i++,j++),至于为什么每次+1,是因为肯定能确定一个移动顺序满足每个只移一次
考虑可以变的情况,求最长公共子序列l,return n-l?
相关推荐