判定是否互为字符重排(入门算法30)
题目:给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。
示例:
输入: s1 = “abc”, s2 = “bca”
输出: true
输入: s1 = “abc”, s2 = “bad”
输出: false
解题思路:
如果s1可以通过编排变成s2,那么s1有的字符,s2一定有,且他们的个数也一定相同。那么我们可以每次都从s1中取出第一个字符,然后去s2中找,找到就把s2中该字符去掉,找不到直接返回false,直到s1和s2其中一个为空退出循环,此时再判断s1和s2是否都为空字符串,如果是,那么s1可以通过编排变成s2,返回true,如果不是,那么s1不能通过编排变成s2,返回false。
class Solution {public boolean CheckPermutation(String s1, String s2) {while(!s1.equals("") && !s2.equals("")){char temp = s1.charAt(0);s1 = s1.substring(1);//s1中有s2不存在的字符,返回falseint index = s2.indexOf(temp);if(index == -1) return false;//s2中有s1中有的字符,删掉//查看索引是否是s2的最后一个元素if(index != s2.length() - 1){s2 = s2.substring(0,index) + s2.substring(index+1);}else{s2 = s2.substring(0,index);}}if(s1.equals("") && s2.equals("")) return true;return false;}
}
力扣战绩:
判定是否互为字符重排(入门算法30)相关推荐
- 面试金典02(Python)—— 判定是否互为字符重排(简单)
判定是否互为字符重排 概述:给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串. 输入: s1 = "abc", s2 = & ...
- 判定是否互为字符重排
判定是否互为字符重排 给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串. 示例 1: 输入: s1 = "abc", s2 ...
- 365天挑战LeetCode1000题——Day 097 神策专场: 判定是否互为字符重排 按身高排序 按位与最大的最长子数组 找到所有好下标 好路径的数目
面试题 01.02. 判定是否互为字符重排 代码实现(排序) class Solution {public:bool CheckPermutation(string s1, string s2) {s ...
- 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 ...
最新文章
- AI一分钟 | 特斯拉做空者频频“找茬”;自动驾驶汽车事故调查:人为是主因...
- GNN教程:图注意力网络(GAT)详解!
- Docker selenium自动化 - windows版docker的安装与运行环境检测
- boost::multiprecision模块实现导入/导出 cpp_int 的位 到 8 位无符号值的向量相关的测试程序
- 科技部成立新一代人工智能发展研究中心
- Java计算时间差_传统的SimpleDateFormat类
- React开发(133):ant design学习指南之form中input加前缀
- 五、工作量证明链解决拜占庭将军问题之模拟程序(Objective-C)
- Android零基础入门第87节:Fragment添加、删除、替换
- 四、hibernate实体对象,事务管理,锁
- sin的傅里叶变换公式_sin2t的傅里叶变换
- 离散数学 --- 命题逻辑 --- 基本推理形式和自然演绎法推理
- 苹果为何在中国一南一北设两个研发中心?五重考量
- 《流畅的Python》6-鸭子类型和切片原理
- Ubuntu操作系统的安装
- java语言中 逻辑常量_在 Java语言中 ,逻辑常量只有哪两个值 (true,false)_语文答案_学小易找答案...
- 数据结构— —单链表
- Unity3D实战入门之第三人称射击游戏(TPS)-伍晓波-专题视频课程
- 海康 网络摄像头 多摄像头数据传输及流解码
- 试试这三个黑科技APP,带给你不一样的体验
热门文章
- 中国水果和蔬菜种子市场趋势报告、技术动态创新及市场预测
- Simplify and Robustify Negative Sampling for Implicit Collaborative Filtering (Nips‘20) 论文小结
- UE4性能观察的基础
- 分享OMS系统实战的三两事
- 最实用idae快捷键
- 教师资格证报名网页兼容问题
- PySCIPOpt常用函数功能介绍(一)
- 6. ——21. 完整版
- for循环用腻了,试试列表生成式。
- 麦子学院美国商务中心成立,探索在线教育新高点www.maiziedu.com