题解 | #多多的字符变换#
多多的字符变换
http://www.nowcoder.com/practice/78255f37c7dc4f749ceafc8c58206a43
多多的字符变换
#include <stdio.h> int cmp(char *a, char *b){ return (int)*a-(int)*b; } int main(){ int len = 0,max=0,min=0; long long result = 0; scanf("%d\n",&len); char* str1 = (char*)malloc(len); char* str2 = (char*)malloc(len); scanf("%s\n%s\n",str1,str2); qsort(str1,len,sizeof(char),cmp); qsort(str2,len,sizeof(char),cmp); //printf("str1 = %s\nstr2 = %s\n",str1,str2); for(int i=0; i<len; i++){ //偷懒的方法,想要更快应该用两个指针来比较 if(str1[i] != str2[i]){ max = str1[i]-'a'; min = str2[i]-'a'; //一定要注意绝对值的问题,不能到最后才累加相减 //(不能确定相同的位置上字符的大小) result+=max>min?max-min:min-max; } } //printf("max=%d,min=%d\n",max,min); printf("%d\n",result); return 0; }