解法一

统计每个字符串中各个字母的数量,对两个字符串各个字母数量差的绝对值求和。在最小步骤的情况下,每一次更改应将S相对于T的某个多余的字母换成某个缺少的字母,这样每次差距值就减少2,总差值除以2就是步骤数。

  1. class Solution {
  2. public int minSteps(String s, String t) {
  3. // S、T中各类字母的数量
  4. int[] countS = new int[26];
  5. int[] countT = new int[26];
  6. int i;
  7. for (i = 0; i < s.length(); ++i) {
  8. ++countS[s.charAt(i) - 97];
  9. ++countT[t.charAt(i) - 97];
  10. }
  11. int ans = 0;
  12. for (i = 0; i < 26; ++i) {
  13. ans += Math.abs(countS[i] - countT[i]);
  14. }
  15. return ans / 2;
  16. }
  17. }