[Swift]LeetCode1153. 字符串转化 | String Transforms Into Another String

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:为敢(WeiGanTechnologies)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/11333863.html 
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

Given two strings str1 and str2 of the same length, determine whether you can transform str1 into str2 by doing zero or more conversions.

In one conversion you can convert all occurrences of one character in str1 to any other lowercase English character.

Return true if and only if you can transform str1 into str2.

Example 1:

Input: str1 = "aabcc", str2 = "ccdee"
Output: true
Explanation: Convert 'c' to 'e' then 'b' to 'd' then 'a' to 'c'. Note that the order of conversions matter.

Example 2:

Input: str1 = "leetcode", str2 = "codeleet"
Output: false
Explanation: There is no way to transform str1 to str2.

Note:

  1. 1 <= str1.length == str2.length <= 10^4
  2. Both str1 and str2 contain only lowercase English letters.

给出两个长度相同的字符串,分别是 str1 和 str2。请你帮忙判断字符串 str1 能不能在 零次 或 多次 转化后变成字符串 str2

每一次转化时,将会一次性将 str1 中出现的 所有 相同字母变成其他 任何 小写英文字母(见示例)。

只有在字符串 str1 能够通过上述方式顺利转化为字符串 str2 时才能返回 True,否则返回 False。​​

示例 1:

输入:str1 = "aabcc", str2 = "ccdee"
输出:true
解释:将 'c' 变成 'e',然后把 'b' 变成 'd',接着再把 'a' 变成 'c'。注意,转化的顺序也很重要。

示例 2:

输入:str1 = "leetcode", str2 = "codeleet"
输出:false
解释:我们没有办法能够把 str1 转化为 str2。

提示:

  1. 1 <= str1.length == str2.length <= 10^4
  2. str1 和 str2 中都只会出现 小写英文字母

72ms

 1 class Solution {
 2     func canConvert(_ str1: String, _ str2: String) -> Bool {
 3         if str1 == str2 {return true}
 4         let n:Int = str1.count
 5         var arr:[Int] = [Int](repeating:-1,count:26)
 6         let arrS:[Int] = Array(str1).map{$0.ascii}
 7         let arrT:[Int] = Array(str2).map{$0.ascii}
 8         for i in 0..<n
 9         {
10             var x:Int = arrS[i] - 97
11             var y:Int = arrT[i] - 97
12             if arr[x] == -1
13             {
14                 arr[x] = y
15             }
16             else if arr[x] != y
17             {
18                 return false
19             }
20         }
21         var has:Int = 0
22         for i in 0..<26
23         {
24             if arr[i] != -1
25             {
26                 has += 1
27             }            
28         }
29         var flag:Int = 0
30         for i in 0..<26
31         {
32             for j in (i + 1)..<26
33             {
34                 if arr[i] != -1 && arr[j] != -1 && arr[i] == arr[j]
35                 {
36                     flag = 1
37                 }
38             }
39         }
40         if has != 26 || flag != 0 {return true}
41         return false
42     }
43 }
44 
45 //Character扩展 
46 extension Character  
47 {  
48   //Character转ASCII整数值(定义小写为整数值)
49    var ascii: Int {
50        get {
51            return Int(self.unicodeScalars.first?.value ?? 0)
52        }       
53     }
54 }

 

转载于:https://www.cnblogs.com/strengthen/p/11333863.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/568989.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

while循环在Python中的应用举例 及其break continue的使用

while循环定义&#xff1a; https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注&#xff01; 欢迎关注微信公众号&#xff1a;宝藏女孩的成长日记 让这个可爱的宝藏女孩在努力的道路上与你一起同行&#xff01; 如有转载&#xff0c;请注明出处&#xff08;如不注明&a…

PTT BBS-- 软件人的心路历程分享 (补习计算机、学习写程序、出书、出国、求职...这位前辈都经历过了)...

这是我的文章备份&#xff0c;原文请看&#xff1a;PTT BBS-- 软件人的心路历程分享 &#xff08;补习计算机、学习写程序、出书、出国、求职...这位前辈都经历过了&#xff09; http://www.dotblogs.com.tw/mis2000lab/archive/2012/12/12/85599.aspx 资料来源&#xff1a;P…

在Python当中如何打印输出当前时间(代码)

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注&#xff01; 欢迎关注微信公众号&#xff1a;宝藏女孩的成长日记 如有转载&#xff0c;请注明出处&#xff08;如不注明&#xff0c;盗者必究&#xff09; 代码&#xff1a; import time print(time.strftime(%Y-%…

Pycharm怎么改背景颜色(超详细)

1.首先打开Pycharm&#xff0c;点击file&#xff08;文件&#xff09;&#xff0c;在点击settings(设置) 点击Editor&#xff08;编辑器&#xff09;&#xff0c;点击Color Scheme&#xff08;色彩方案&#xff09;,再点击Console Colors&#xff08;控制台颜色&#xff09; 打…

java 10大常见异常

1. java.lang.NullPointerException 这个异常大家肯定都经常遇到&#xff0c;异常的解释是 "程序遇上了空指针 "&#xff0c;简单地说就是调用了未经初始化的对象或者是不存在的对象&#xff0c;这个错误经常出现在创建图片&#xff0c;调用数组这些操作中&#xf…

Python中字符串如何定义简单举例

详细代码&#xff1a; #codingutf-8#定义一个单行字符串用"" 或者 注:是用英文输入 String "这街上太拥挤" String1 "太多人有秘密"#定义一个多行字符串用""" """ 或者 注明&#xff1a;是用英文输入 Stri…

ireport 无法打开问题

打开时闪退 ,是因为jdk版本过高的原因:https://blog.csdn.net/aust_glj/article/details/52291240 相关软件下载地址: JasperReports Library 下载地址&#xff1a;https://community.jaspersoft.com/community-download iReport Designer 下载地址&#xff1a;https://communi…

Python转义字符及举例(常见)代码解释

常见转移字符表 转义字符说明\ (在行尾时)续行符\ \反斜杠符号“\”\ ’单引号\ "双引号\n换行\v纵向制表符\t横向制表符\r回车\f换页 举例&#xff1a; \’-单引号 代码&#xff1a; #codingutf-8string I ll be a good person print(string)我们输入string ‘I’l…

C# Http请求接口数据的两种方式Get and Post

面向接口编程是一种设计思想&#xff0c;无论用什么语言都少不了面向接口开发思想&#xff0c;在软件开发过程中&#xff0c;常常要调用接口&#xff0c;接下来就是介绍C#调用其它开发商提供的接口进行获取数据&#xff0c;http接口方式获取接口数据。 Get请求数据&#xff1a;…

Python格式化输出--%s,%d,%f

String(字符型)–%s integer(整形)–%d float(浮点型)–%f https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注&#xff01; 欢迎关注微信公众号&#xff1a;宝藏女孩的成长日记 让这个可爱的宝藏女孩在努力的道路上与你一起同行&#xff01; 如有转载&#xff0c;请注…

网络流总结

我的网络流7题 最大流2题&#xff1a; 洛谷P2756 飞行员配对方案问题 分析 其实就是一个二分图匹配求最大匹配数的问题&#xff0c;加一个源点和汇点&#xff0c;再跑一遍网络流&#xff0c;输出方案的时候检查一下有没有流经过即可&#xff08;反向边是否非0&#xff09;。 注…

JMeter如何切换成中文详细步骤

首先&#xff0c;如图打开JMeter&#xff0c;点击Options(选项)&#xff0c;再见下拉选项就选中Choose Language(选中语言)&#xff0c;最后再点击Chinese(Simplified) (中文简体的意思) https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注&#xff01; 欢迎关注微信…

MVC 无法将带 [] 的索引应用于“System.Dynamic.DynamicObject”类型的表达式

无法将带 [] 的索引应用于“System.Dynamic.DynamicObject”类型的表达式 说明: 执行当前 Web 请求期间&#xff0c;出现未经处理的异常。请检查堆栈跟踪信息&#xff0c;以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: Micro…

JMeter 入门脚本以发送百度请求为例

1. 打开JMeter 就会有一个默认的Test Plan(测试计划) 2. 添加线程组 https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注&#xff01; 欢迎关注微信公众号&#xff1a;宝藏女孩的成长日记 如有转载&#xff0c;请注明出处&#xff08;如不注明&#xff0c;盗者必究&am…

利用js实现 禁用浏览器后退

对 就是禁用这个东西。 这种方式&#xff0c;可以消除后退的所有动作。包括 键盘、鼠标手势等产生的后退动作。 <script language"javascript">//防止页面后退history.pushState(null, null, document.URL);window.addEventListener(popstate, function () {hi…

Python中的回文详解

回文&#xff1a; https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注&#xff01; 欢迎关注微信公众号&#xff1a;宝藏女孩的成长日记 让这个可爱的宝藏女孩在努力的道路上与你一起同行&#xff01; 如有转载&#xff0c;请注明出处&#xff08;如不注明&#xff0c…

TypeError object of type ‘type‘ has no len()—Python报错问题:

翻译过来是类型为“type”的TypeError对象没有len&#xff08;&#xff09;&#xff0c;我报错的代码是&#xff1a; https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注&#xff01; 欢迎关注微信公众号&#xff1a;宝藏女孩的成长日记 让这个可爱的宝藏女孩在努力的…

好用的工具网站!(缓慢收集中!)

https://tool.lu/ 各种工具网站&#xff01; 转载于:https://www.cnblogs.com/baimangguo/p/11345592.html

NameError: name ‘c‘ is not defined--python报错问题

翻译的意思是&#xff1a;名称错误&#xff1a;未定义名称“c” 报错代码是&#xff1a; #codingutf-8print("请输入一个字符串&#xff1a;") a input() #回文的长度至少为2 if len(c) < 2:print(请不要输入空字符串&#xff01;)a input(请重新输入一个字符串…

Linux 查找目录下大于*M的文件

1. 查找指定文件夹下等于1M的文件 find ./ -size 1M | wc -l 2. 查找指定文件夹下大于1M的文件 find ./target_path -size 1M | wc -l 转载于:https://www.cnblogs.com/commissar-Xia/p/11346102.html