1790. 仅执行一次字符串交换能否使两个字符串相等


  1. class Solution {
  2. public boolean areAlmostEqual(String s1, String s2) {
  3. if (s1.length() != s2.length())
  4. return false;
  5. int len = s1.length();
  6. int count = 0;
  7. char c1 = 'a';
  8. char c2 = 'a';
  9. for (int i = 0; i < len; i++) {
  10. if (s1.charAt(i) == s2.charAt(i)) {
  11. continue;
  12. }
  13. if (count == 0) {
  14. c1 = s1.charAt(i);
  15. c2 = s2.charAt(i);
  16. } else if (count == 1) {
  17. if (s1.charAt(i) != c2 || s2.charAt(i) != c1) {
  18. return false;
  19. }
  20. } else {
  21. return false;
  22. }
  23. ++count;
  24. }
  25. return count != 1;
  26. }
  27. }