题目:

面试题 01.02. 判定是否互为字符重排。

给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。

链接:https://leetcode-cn.com/problems/check-permutation-lcci/

示例:

输入: s1 = “abc”, s2 = “bca”
输出: true

输入: s1 = “abc”, s2 = “bad”
输出: false

说明:
0 <= len(s1) <= 100
0 <= len(s2) <= 100

思路:

首先,由于s1和s2互位字符重排,所以两者拥有的字符种类和个数均相同,如果s1和s2的长度不相同,可直接返回False.

其次,借助python中的字典数据类型,记录字符串s1中字符及其出现的次数。

  • 遍历s1中的字符,得到该字符串中每个字符出现的次数。
  • 遍历s2中的字符,如果当前字符存在于字典中,则对应的次数减1。当字符不存在或次数小于0时,返回False。
  • s2遍历完说明其与s1中的字符种类和个数相同,则返回True。

代码:

class Solution:def CheckPermutation(self, s1: str, s2: str) -> bool:if len(s1) != len(s2): return Falses1_dict = {}for s in s1:if s not in s1_dict:s1_dict[s] = 1else:s1_dict[s] += 1for s in s2:if s1_dict.get(s):s1_dict[s] -= 1else:return Falsereturn True

时间复杂度O(n),空间复杂度O(n).

LC: 面试题 01.02. 判定是否互为字符重排相关推荐

  1. LeetCode:面试题 01.02. 判定是否互为字符重排————简单

    题目 面试题 01.02. 判定是否互为字符重排 给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串. 示例 1: 输入: s1 = " ...

  2. 文巾解题 面试题 01.02. 判定是否互为字符重排

    1 题目描述 2 解题思路 2.1 replace 对每一个在s1中的字符,如果s2中没有,那么说明两个不匹配,返回false:如果s2中有,那么将s2中的一个这个字符换成'' 如果s1全部遍历完了, ...

  3. 程序员面试金典 - 面试题 01.02. 判定是否互为字符重排(哈希map)

    1. 题目 给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串. 示例 1: 输入: s1 = "abc", s2 = &qu ...

  4. 面试题01.02 判定是否互为字符重排

    给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串. 例1: 输入: s1 = "abc", s2 = "bca&q ...

  5. LeetCode之面试题01.02判定是否互为字符重排

    **题目:**给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串. 示例: 说明: class Solution {public boolean ...

  6. LeetCode面试题 01.02. 判定是否互为字符重排

    给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串. 示例 1: 输入: s1 = "abc", s2 = "bca ...

  7. 程序员面试金典01.02. 判定是否互为字符重排

    给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串. 示例 1: 输入: s1 = "abc", s2 = "bca ...

  8. 365天挑战LeetCode1000题——Day 097 神策专场: 判定是否互为字符重排 按身高排序 按位与最大的最长子数组 找到所有好下标 好路径的数目

    面试题 01.02. 判定是否互为字符重排 代码实现(排序) class Solution {public:bool CheckPermutation(string s1, string s2) {s ...

  9. 面试金典02(Python)—— 判定是否互为字符重排(简单)

    判定是否互为字符重排 概述:给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串. 输入: s1 = "abc", s2 = & ...

最新文章

  1. 4.3-沛县欢乐多(DHCP,ARP,ICMP协议)
  2. Python学习第二天----网络基础及操作系统简介(安装linux系统)
  3. 与Flutter第一次亲密接触-Android 视角
  4. specter mmsim 区别_开车?坐车?动词?介词?各种交通工具用法区别及使用思维...
  5. MapReduce过程详解
  6. 【转】.NET Interop入门-P/Invoke和Reverse P/Invoke
  7. 百度网盘、迅雷下载.torrent种子文件
  8. 用SyncToy进行两台服务器之间文件同步
  9. 国外问卷调查赚钱网站
  10. HttpClient在Android新API上的java.lang.NoSuchFieldError: No static field INSTANCE问题
  11. 智慧校园管理系统,精细化+网格化
  12. python画羊_python编程羊车门问题代码示例
  13. PTA寒假基础题训练(含解题思路)(下)
  14. QQ2009无法显示好友自定义头像
  15. Android流量监控
  16. 碱性干电池的内阻测试方法_怎样测试蓄电池内阻全解
  17. 汽车业内软件编码规范--MISRA C简介
  18. 自考专,银行外包测试人员工作 2个月有余,聊聊一些真实感受
  19. Linux命令速查工具
  20. 如何删除已安装的Windows服务

热门文章

  1. Android mk详解
  2. nmap 端口扫描王,查看端口是否可访问,是否对外开放
  3. el-table-column设置fixed后,el-popover出现两个的解决办法。
  4. 多线程方面我读了哪些好书
  5. wrk 压测post请求遍历循环动态参数
  6. mt管理器错误信息java_MT管理器_MT管理器手机版_MT管理器清爽版_易玩网
  7. python怎么查找word文档_教你怎么使用Python对word文档进行操作
  8. 无人驾驶传感器融合系列(四)——毫米波雷达测距原理(77GHz FMCW)
  9. 变频器电路原理详解经典
  10. 博图V17安装Drive_LIB_S7_1200_1500文件全局库,实现运动控制