博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
859. Buddy Strings - LeetCode
阅读量:4357 次
发布时间:2019-06-07

本文共 902 字,大约阅读时间需要 3 分钟。

Question

2018082401.png

2018082402.png

Solution

题目大意:

两个字符串,其中一个字符串任意两个字符互换后与另一个字符串相等,只能互换一次

思路:

diff 记录不同字符数两个字符串长度不同 return false两个字符串长度相同:abc abd     无重复,diff == 1  ca[3] != cb[3] return falseabc abc     无重复,diff == 0  return falseab ba       无重复,diff == 2  return trueaa aa       aa重复,diff == 0  return trueaabc aabc   aa重复,diff == 0  return trueaacb aabc   aa重复,diff == 2  return true

Java实现:

public boolean buddyStrings(String A, String B) {    if (A.length() != B.length()) return false;    int[] ca = new int[26];    int[] cb = new int[26];    int diff = 0;    for (int i = 0; i < A.length(); i++) {        ca[A.charAt(i) - 'a']++;        cb[B.charAt(i) - 'a']++;        if (A.charAt(i) != B.charAt(i)) diff++;    }    for (int i = 0; i < ca.length; i++) {        if (diff == 0 && ca[i] > 1) return true;        if (ca[i] != cb[i]) return false;    }    return diff == 2;}

转载于:https://www.cnblogs.com/okokabcd/p/9532321.html

你可能感兴趣的文章
vue 中 vue-router、transition、keep-alive 怎么结合使用?
查看>>
小常识
查看>>
TungstenSecret
查看>>
LR遇到的问题
查看>>
mssql格式化工具——SQL PRETTY PRINTER
查看>>
datagrid删除按钮
查看>>
Redis高级进阶(一)
查看>>
PhysX入门教程(全)
查看>>
Codeforces 948D Perfect Security 【01字典树】
查看>>
android中通过ServerSocket创建端口问题
查看>>
fieldset、legend、display html元素
查看>>
IntelliJ IDEA 14.x 与 Tomcat 集成,创建并运行Java Web项目
查看>>
JavaWeb学习-Tomcat
查看>>
优秀程序员==工作时间长的程序员么?
查看>>
docker学习笔记2:容器操作
查看>>
深入浅出设计模式——访问者模式(Visitor Pattern)
查看>>
【转载】zookeeper 分布式锁 实现
查看>>
SQL语法
查看>>
Django(三) ORM 数据库操作
查看>>
【转】iOS静态库 【.a 和framework】【超详细】
查看>>