判定是否互为字符重排

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

示例 1:

  • 输入: s1 = "abc", s2 = "bca"
  • 输出: true

示例 2:

  • 输入: s1 = "abc", s2 = "bad"
  • 输出: false

示例代码1:

#  位运算
class Solution(object):def CheckPermutation(self, s1, s2):""":type s1: str:type s2: str:rtype: bool"""if len(s1) != len(s2):return Falseres = 0for i in range(len(s1)):res += 1 << ord(s1[i])res -= 1 << ord(s2[i])return res == 0a = Solution()
# b = a.CheckPermutation('abc', 'bca')
b = a.CheckPermutation('abd', 'bca')
print(b)

示例代码2:

#  字符串排序后比较
class Solution(object):def CheckPermutation(self, s1, s2):""":type s1: str:type s2: str:rtype: bool"""return sorted(s1) == sorted(s2)a = Solution()
b = a.CheckPermutation('abc', 'bca')
# b = a.CheckPermutation('abd', 'bca')
print(b)

示例代码3:

#  利用集合元素的不可重复性
class Solution(object):def CheckPermutation(self, s1, s2):""":type s1: str:type s2: str:rtype: bool"""return set(s1) == set(s2)a = Solution()
# b = a.CheckPermutation('abc', 'bca')
b = a.CheckPermutation('abd', 'bca')
print(b)

运行效果:

解题思路:

详细了解python 中的ord()函数和chr()函数,查看博文:https://blog.csdn.net/weixin_44799217/article/details/112333924

详细了解Python 位运算符,查看博文:https://blog.csdn.net/weixin_44799217/article/details/111715689

示例代码1:

  • 思路:位运算
  • 时间复杂度: O(N)
  • 空间复杂度: O(1)

示例代码3:

  1. 将字符串转为集合
  2. 利用集合元素的不可重复性

判定是否互为字符重排相关推荐

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

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

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

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

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

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

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

    题目: 面试题 01.02. 判定是否互为字符重排. 给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串. 链接:https://leetcode ...

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

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

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

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

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

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

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

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

  9. 判定是否互为字符重排(入门算法30)

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

最新文章

  1. 【廖雪峰python进阶笔记】函数式编程
  2. 使用MaxCompute Java SDK 执行任务卡住了,怎么办?
  3. pip时read time out
  4. 【NLP】竞赛必备的NLP库
  5. mysql binlog2sql_mysql闪回工具binlog2sql安装配置教程详解
  6. 软件测试实验1:JUnit、Hamcrest、Eclemma
  7. 基于 Jenkins 和 Kubernetes 的持续集成测试实践了解一下!
  8. Java高级进阶学习资料!Java虚拟机的垃圾回收机制
  9. 机房收费系统合作版(二):透过显示上机人数品味如何做到全心全意为人民服务
  10. 图解cgroup架构中cgroup与css之间的多对多的关系
  11. python屏幕录像专家_可以推荐一款电脑录屏软件吗?
  12. 代码审计工具学习之RISP(安装以及初步操作)
  13. ubuntu安装matlab2016b
  14. Android开发之内容提供者——创建自己的ContentProvider(详解)
  15. win10和win11系统qq远程不能控制(点不动)的终极解决方法
  16. WIN10 解决“无法完成操作,因为文件包含病毒或潜在的垃圾软件”
  17. Java的字节流和字符流
  18. 批量注释基因到基因座上(map gene to locus)
  19. [CryptoHack] RSA-PRIMES PART1 Write-Up
  20. 使用easypoi导出注解添加序号,无须重写ExcelExportUtil类

热门文章

  1. 终于有人把Python讲清楚了!
  2. AutoML很火,过度吹捧的结果?
  3. 轻松应对Java试题,这是一份大数据分析工程师面试指南
  4. 赌5毛钱,你解不出这道Google面试题
  5. 优秀开发者必备技能包:Python调试器
  6. 微信是把“杀猪刀”,还改变了我的表情包
  7. 科大讯飞全新1024:3大计划,200项A.I.能力,全链路驱动应用场景创新!
  8. 今晚8点免费直播 | 详解知识图谱关键技术与应用案例
  9. 马斯克新视频:Boring公司将优先解决公交快速通勤
  10. 八大深度学习最佳实践