题目:http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=915
思路:两个字符串1,2,从前往后,找到1与2不同的第一个字符,要通过相邻字符串交换,使得这个位置上的字符串相同,单单站在这个问题上,最好的方法是:从1字符串的这个位置往后找与2字符串这个位置字符相同的字符,然后不断的往前交换。但是整体上也不知道这种方法是不是最少步骤的,不妨试一试,这也是贪心的思想(局部最好,到整体)。下面代码把不断交换的过程省略了,因为交换的次数只与两个位置i,j有关c=j-i,而不断交换后的结果 与 两个位置上的字符交换 一样,所以直接优化成后一种。
代码:
1 #include<stdio.h> 2 #include<string.h> 3 int main() 4 { 5 char s1[5005],s2[5005],ch; 6 int i,j,count=0,flag; 7 while(~scanf("%s",&s1)) 8 { 9 scanf("%s",&s2); 10 count=0; 11 flag=1; 12 for(i=0; s1[i]!='