C#LeetCode刷题之#893-特殊等价字符串组(Groups of Special-Equivalent Strings)
问题
你将得到一个字符串数组 A。
如果经过任意次数的移动,S == T,那么两个字符串 S 和 T 是特殊等价的。
一次移动包括选择两个索引 i 和 j,且 i%2 == j%2,并且交换 S[j] 和 S [i]。
现在规定,A 中的特殊等价字符串组是 A 的非空子集 S,这样不在 S 中的任何字符串与 S 中的任何字符串都不是特殊等价的。
返回 A 中特殊等价字符串组的数量。
输入:["a","b","c","a","c","c"]
输出:3
解释:3 组 ["a","a"],["b"],["c","c","c"]
输入:["aa","bb","ab","ba"]
输出:4
解释:4 组 ["aa"],["bb"],["ab"],["ba"]
输入:["abc","acb","bac","bca","cab","cba"]
输出:3
解释:3 组 ["abc","cba"],["acb","bca"],["bac","cab"]
输入:["abcd","cdab","adcb","cbad"]
输出:1
解释:1 组 ["abcd","cdab","adcb","cbad"]
提示:
- 1 <= A.length <= 1000
- 1 <= A[i].length <= 20
- 所有 A[i] 都具有相同的长度。
- 所有 A[i] 都只由小写字母组成。
You are given an array A of strings.
Two strings S and T are special-equivalent if after any number of moves, S == T.
A move consists of choosing two indices i and j with i % 2 == j % 2, and swapping S[i] with S[j].
Now, a group of special-equivalent strings from A is a non-empty subset S of A such that any string not in S is not special-equivalent with any string in S.
Return the number of groups of special-equivalent strings from A.
Input: ["a","b","c","a","c","c"]
Output: 3
Explanation: 3 groups ["a","a"], ["b"], ["c","c","c"]
Input: ["aa","bb","ab","ba"]
Output: 4
Explanation: 4 groups ["aa"], ["bb"], ["ab"], ["ba"]
Input: ["abc","acb","bac","bca","cab","cba"]
Output: 3
Explanation: 3 groups ["abc","cba"], ["acb","bca"], ["bac","cab"]
Input: ["abcd","cdab","adcb","cbad"]
Output: 1
Explanation: 1 group ["abcd","cdab","adcb","cbad"]
Note:
- 1 <= A.length <= 1000
- 1 <= A[i].length <= 20
- All A[i] have the same length.
- All A[i] consist of only lowercase letters.
示例
public class Program {public static void Main(string[] args) {var S = "I speak Goat Latin";var res = ToGoatLatin(S);Console.WriteLine(res);Console.ReadKey();}private static string ToGoatLatin(string S) {//按空格分隔var split = S.Split(' ');//定义结果var res = string.Empty;for(var i = 0; i < split.Length; i++) {if(IsStartsWithVowel(split[i])) {res += split[i];} else {//辅音字母开头时,首字母后置res += split[i].Substring(1) + split[i][0];}//追回字符串 ma 和按索引重复的字符 ares += "ma" + RepeatString(i + 1) + " ";}return res.Trim();}private static bool IsStartsWithVowel(string word) {//判断是不是元音字母var s = word[0].ToString().ToLower();return s == "a" || s == "e" || s == "i" || s == "o" || s == "u";}private static string RepeatString(int count) {//重复字符串var c = 'a';var res = string.Empty;for(var i = 0; i < count; i++) {res += c;}return res;}}
以上给出1种算法实现,以下是这个案例的输出结果:
Imaa peaksmaaa oatGmaaaa atinLmaaaaa
分析:
显而易见,以上算法的时间复杂度为: 。
C#LeetCode刷题之#893-特殊等价字符串组(Groups of Special-Equivalent Strings)相关推荐
- LeetCode 893. 特殊等价字符串组
1. 题目 你将得到一个字符串数组 A. 如果经过任意次数的移动,S == T,那么两个字符串 S 和 T 是特殊等价的. 一次移动包括选择两个索引 i 和 j,且 i % 2 == j % 2,交换 ...
- 893. 特殊等价字符串组
特殊等价字符串组 转载于:https://www.cnblogs.com/hglibin/p/11000851.html
- C#LeetCode刷题-字符串
字符串篇 # 题名 刷题 通过率 难度 3 无重复字符的最长子串 24.6% 中等 5 最长回文子串 22.4% 中等 6 Z字形变换 35.8% 中等 8 字符串转整数 (atoi) 15.3% 中 ...
- LeetCode刷题实战450:删除二叉搜索树中的节点
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...
- LeetCode刷题实战546:移除盒子
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...
- LeetCode刷题实战488:祖玛游戏
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...
- LeetCode刷题实战216:组合总和 III
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...
- LeetCode刷题实战354:俄罗斯套娃信封问题
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...
- LeetCode刷题实战355:设计推特
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...
最新文章
- Android面试题目之六---Handler,Looper和MessageQueue深入研究
- 剑指offer之斐波那契问题(C++/Java双重实现)
- GDCM:gdcm::terminal的测试程序
- Java快速入门学习笔记9 | Java语言中的方法
- VScode+远程服务器docker+C/C++ 代码挑战配置
- python重定向作用_Python重定向不起作用
- 5G卡位未来? 万物互联的畅想还是忧伤
- 字符串的getBytes方法
- 上海自来水来自海上,一文掌握这类字符串的验证!
- 先尝甜头后食苦果 曾经的光伏巨头如今都身在何方?
- 了解Java8中的parallelStream
- linux关闭笔记本自带键盘
- Unity--游戏字幕
- 渡阡科技Edu——梦开始的地方
- 期货反向跟单--戏剧性的事实
- FP7195大功率零压差全程无频闪调光DC-DC恒流芯片
- 单向链表与双向链表的区别
- Redis源码分析之PSYNC同步
- 苹果手机(IOS)下载不上安装不上charles证书(不弹出下载框)终极解决办法
- 项目建议书-在线书籍购物书