【数据结构与算法】之判断是否互为字符重排

举报
Serendipity·y 发表于 2022/02/17 01:11:20 2022/02/17
【摘要】 给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。 一、题目要求 示例一: 输入: s1 = "abc", s2 = "bca" 输出: ...

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

一、题目要求
  • 示例一:
	输入: s1 = "abc", s2 = "bca"
	输出: true 

  
 
  • 1
  • 2

示例二:

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

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

  
 
  • 1
  • 2
二、算法示例

先重排,再比较

  • Swift
	func CheckPermutation(_ s1: String, _ s2: String) -> Bool {
       if s1.count != s2.count {
         return false
       } else if s1 == s2 {
         return true
       }
       return s1.sorted() == s2.sorted()
    }

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • C
	bool CheckPermutation(char* s1, char* s2){
	    if (s1 == NULL || s2 == NULL ||
	        strlen(s1) != strlen(s2)) {
	        return false;
	    }
	    int sum = 0;
	    int ans = 0;
	    for (int i=0; i<strlen(s1); ++i) {
	        ans ^= s1[i];
	        ans ^= s2[i];
	        sum += s1[i];
	        sum -= s2[i];
	    }
	    return ans == 0 && sum == 0;
	}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

文章来源: blog.csdn.net,作者:Serendipity·y,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/Forever_wj/article/details/108633278

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。