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

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

Given two strings A and B of lowercase letters, return true if and only if we can swap two letters in A so that the result equals B.

Example 1:

Input: A = "ab", B = "ba"Output: true

Example 2:

Input: A = "ab", B = "ab"Output: false

Example 3:

Input: A = "aa", B = "aa"Output: true

Example 4:

Input: A = "aaaaaaabc", B = "aaaaaaacb"Output: true

Example 5:

Input: A = "", B = "aa"Output: false

Note:

0 <= A.length <= 20000
0 <= B.length <= 20000
A and B consist only of lowercase letters.

难度: Medium

题目:给定两字符串A和B且由小写字线组成,返回AB是否由仅交换两个字符可以相互生成。

思路:判断长度,记录不同位置的个数,记录是否有相同的字符。

Runtime: 3 ms, faster than 81.94% of Java online submissions for Buddy Strings.

Memory Usage: 38.6 MB, less than 50.00% of Java online submissions for Buddy Strings.

class Solution {    public boolean buddyStrings(String A, String B) {        if (A.length() != B.length()) {            return false;        }                int[] tableA = new int[26];        int[] tableB = new int[26];        int diffPosition = 0;        for (int i = 0; i < A.length(); i++) {            char a = A.charAt(i);            char b = B.charAt(i);            if (a != b) {                diffPosition++;            }            if (diffPosition > 2) {                return false;            }            tableA[a - 'a']++;            tableB[b - 'a']++;        }                boolean duplicated = false;        for (int i = 0; !duplicated && i < 26; i++) {            if (tableA[i] != tableB[i]) {                return false;            }            duplicated = tableA[i] > 1 ? !duplicated : duplicated;        }                return 2 == diffPosition || duplicated;    }}

转载地址:http://lrqlx.baihongyu.com/

你可能感兴趣的文章
使用linux mysql客户端建立表时遇到格式解析的问题
查看>>
find the mincost route(最小环,最短路,floyd)
查看>>
【今日推荐】10大流行的 Metro UI 风格的 Bootstrap 主题和模板
查看>>
php给图片加入文字水印
查看>>
iOS开发-sqlite3使用
查看>>
(5)QlikView中的RowNo()函数
查看>>
SiteMesh2-示例工程
查看>>
poj 1087 A Plug for UNIX 【最大流】
查看>>
Photoshop制作的ico图标方法
查看>>
HDU 1241 Oil Deposits (DFS)
查看>>
【翻译自mos文章】注意: ASMB process exiting due to lack of ASM file activity
查看>>
ucgui界面设计演示样例2
查看>>
蓝桥杯练习系统——基础练习 十六进制转十进制
查看>>
ionic3+angular4+cordova 项目实例
查看>>
(转)设计模式——观察者模式
查看>>
Jar包冲突解决方法
查看>>
彻底搞清楚Java并发 (一) 基础
查看>>
SQL疑难杂症【3】链接服务器提示"无法启动分布式事物"
查看>>
Windows Mobile和Wince(Windows Embedded CE)下如何封装Native DLL提供给.NET Compact Framework进行调用...
查看>>
数据库相关
查看>>