判定是否互为字符重排
判定是否互为字符重排
给定两个字符串 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:
- 将字符串转为集合
- 利用集合元素的不可重复性
判定是否互为字符重排相关推荐
- 365天挑战LeetCode1000题——Day 097 神策专场: 判定是否互为字符重排 按身高排序 按位与最大的最长子数组 找到所有好下标 好路径的数目
面试题 01.02. 判定是否互为字符重排 代码实现(排序) class Solution {public:bool CheckPermutation(string s1, string s2) {s ...
- 面试金典02(Python)—— 判定是否互为字符重排(简单)
判定是否互为字符重排 概述:给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串. 输入: s1 = "abc", s2 = & ...
- LeetCode:面试题 01.02. 判定是否互为字符重排————简单
题目 面试题 01.02. 判定是否互为字符重排 给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串. 示例 1: 输入: s1 = " ...
- LC: 面试题 01.02. 判定是否互为字符重排
题目: 面试题 01.02. 判定是否互为字符重排. 给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串. 链接:https://leetcode ...
- 文巾解题 面试题 01.02. 判定是否互为字符重排
1 题目描述 2 解题思路 2.1 replace 对每一个在s1中的字符,如果s2中没有,那么说明两个不匹配,返回false:如果s2中有,那么将s2中的一个这个字符换成'' 如果s1全部遍历完了, ...
- 程序员面试金典 - 面试题 01.02. 判定是否互为字符重排(哈希map)
1. 题目 给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串. 示例 1: 输入: s1 = "abc", s2 = &qu ...
- 面试题01.02 判定是否互为字符重排
给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串. 例1: 输入: s1 = "abc", s2 = "bca&q ...
- 程序员面试金典01.02. 判定是否互为字符重排
给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串. 示例 1: 输入: s1 = "abc", s2 = "bca ...
- 判定是否互为字符重排(入门算法30)
题目:给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串. 示例: 输入: s1 = "abc", s2 = "bc ...
最新文章
- 【廖雪峰python进阶笔记】函数式编程
- 使用MaxCompute Java SDK 执行任务卡住了,怎么办?
- pip时read time out
- 【NLP】竞赛必备的NLP库
- mysql binlog2sql_mysql闪回工具binlog2sql安装配置教程详解
- 软件测试实验1:JUnit、Hamcrest、Eclemma
- 基于 Jenkins 和 Kubernetes 的持续集成测试实践了解一下!
- Java高级进阶学习资料!Java虚拟机的垃圾回收机制
- 机房收费系统合作版(二):透过显示上机人数品味如何做到全心全意为人民服务
- 图解cgroup架构中cgroup与css之间的多对多的关系
- python屏幕录像专家_可以推荐一款电脑录屏软件吗?
- 代码审计工具学习之RISP(安装以及初步操作)
- ubuntu安装matlab2016b
- Android开发之内容提供者——创建自己的ContentProvider(详解)
- win10和win11系统qq远程不能控制(点不动)的终极解决方法
- WIN10 解决“无法完成操作,因为文件包含病毒或潜在的垃圾软件”
- Java的字节流和字符流
- 批量注释基因到基因座上(map gene to locus)
- [CryptoHack] RSA-PRIMES PART1 Write-Up
- 使用easypoi导出注解添加序号,无须重写ExcelExportUtil类