网站建设评判标准,苏州网站推广如何,WordPress外贸企业站主题,长春网站建设长春电梯公司这道题当理解清了意思之后#xff0c;只要是s1和s2的某位置的字母一样时我们就可以忽视比如s1xxxxxxyyyy; 就可以看成s1xxxyyyy;s2xxxyyyxxxx; s2yyyxxxx;其次就是只有当x和y位置差异产生的数量同奇偶的时候才可以构成相等字…这道题当理解清了意思之后只要是s1和s2的某位置的字母一样时我们就可以忽视比如s1xxxxxxyyyy; 就可以看成s1xxxyyyy; s2xxxyyyxxxx; s2yyyxxxx;其次就是只有当x和y位置差异产生的数量同奇偶的时候才可以构成相等字符串所以当x%2y%2时我们进行计算否则return -1至于奇偶的不同算式只需要写两个例子就可以归纳出来有两个长度相同的字符串 s1 和 s2且它们其中 只含有 字符 x 和 y你需要通过「交换字符」的方式使这两个字符串相同。每次「交换字符」的时候你都可以在两个字符串中各选一个字符进行交换。交换只能发生在两个不同的字符串之间绝对不能发生在同一个字符串内部。也就是说我们可以交换 s1[i] 和 s2[j]但不能交换 s1[i] 和 s1[j]。最后请你返回使 s1 和 s2 相同的最小交换次数如果没有方法能够使得这两个字符串相同则返回 -1 。 示例 1输入s1 xx, s2 yy输出1解释交换 s1[0] 和 s2[1]得到 s1 yxs2 yx。示例 2输入s1 xy, s2 yx输出2解释交换 s1[0] 和 s2[0]得到 s1 yys2 xx 。交换 s1[0] 和 s2[1]得到 s1 xys2 xy 。注意你不能交换 s1[0] 和 s1[1] 使得 s1 变成 yx因为我们只能交换属于两个不同字符串的字符。示例 3输入s1 xx, s2 xy输出-1示例 4输入s1 xxyyxyxyxx, s2 xyyxyxxxyx输出4 提示1 s1.length, s2.length 1000s1, s2 只包含 x 或 y。int minimumSwap(char * s1, char * s2){int len_s1strlen(s1),len_s2strlen(s2),x0,y0;for(int i0;ilen_s1;i){if(s1[i]s2[i]){continue;}if(s1[i]x){x;}else{y;}}if(x%2y%2){if(x%21){return (fmin(x,y)-1)/21(fmax(x,y)1)/2;}else{return (xy)/2;}}return -1;
}也是成功超越几乎双百的提交者