这是一个在线编码挑战(已完成)的问题.
我只需要一些关于如何处理的逻辑.
问题陈述:
我们有两个字符串A和B,它们具有相同的超级字符集.我们需要更改这些字符串以获得两个相等的字符串.在每次移动中,我们都可以执行以下操作之一:
1. swap two consecutive characters of a string
2. swap the first and the last characters of a string
Run Code Online (Sandbox Code Playgroud)
可以对任一字符串执行移动.为获得两个相等的字符串,我们需要
的最小移动次数是多少?
输入格式和约束:输入
的第一行和第二行包含两个字符串A和B.保证它们的字符相等的超集.
1 <= length(A) = length(B) <= 2000
All the input characters are between 'a' and 'z'
Run Code Online (Sandbox Code Playgroud)
输出格式:
将最小移动次数打印到输出的唯一行
Sample input:
aab
baa
Sample output:
1
Run Code Online (Sandbox Code Playgroud)
说明:
交换字符串aab的第一个和最后一个字符以将其转换为baa.这两个字符串现在相等.
编辑:这是我的第一次尝试,但我输错了.有人可以指导我的方法有什么问题.
int minStringMoves(char* a, char* b) {
int length, pos, i, j, moves=0;
char *ptr;
length = strlen(a);
for(i=0;i<length;i++) …Run Code Online (Sandbox Code Playgroud)