题目:
这道题是在某网站刷题时看到的
下面是我自己写的解法(有不对的地方请大佬们帮忙指正)
#include<stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
char s[20]={0},t[20]={0};
int n=0,x,k,num=0,sum;
srand(time(NULL));
int i,j;
for(i=0;i<9;i++)
s[i]=rand()%(‘z’-‘a’)+‘a’;
for(j=0;j<9;j++)
t[j]=rand()%(‘z’-‘a’)+‘a’;
printf(“s=%s,t=%s\n”,s,t);随机生成9位的字符串
for(i=0;i<9;i++)
for(j=0;j<9-n;j++)利用for循环比较两个字符串
{
if(s[i]==t[j]) 遇到一对相等的字母便将t[j]放到字符串的
{ 最后一位,跳出循环并且下次循环将已配对的排除在外
x=t[j];
for(k=j+1;k<9;k++)
t[k-1]=t[k];
t[8]=t[j];
n++;
num++;
continue;
}
}
sum=9-num;
printf("%d",sum);sum为最小步数
}