思维题,首先肯定可以在2个操作以内让它们相等,即每次选中一个字符串的前缀,转变为相同的那个字符。
考虑如何在一个操作内让它们相等。先找到最长的后缀,假设后缀的起始位置为i,如果s或t的前i-1的前缀都等于一个字符c,那么让另外一个字符串变成这个c即可。
当s就等于t时答案为0。所以对所有情况分类一下即可。
小明手上有两个长度相同的字符串 S 和 T,均由小写字母组成。他希望用最少的操作次数将这两个字符串变得完全相同。 每次操作可以选择其中一个字符串,指定一个前缀(即从第一个字符开始的一段连续子串)和一个目标字符,然后将该前缀中所有字符统一修改为目标字符。 请你计算出最少需要多少次操作,并输出任意一种操作次数最少的方案。
数据范围:两个字符串的长度相等,且长度不超过 105。字符串中仅包含小写英文字母。
第一行包含一个字符串 S(长度不超过 105)。 第二行包含另一个字符串 T,其长度与 S 相同。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.