问题

你将得到一个字符串数组 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)相关推荐

  1. LeetCode 893. 特殊等价字符串组

    1. 题目 你将得到一个字符串数组 A. 如果经过任意次数的移动,S == T,那么两个字符串 S 和 T 是特殊等价的. 一次移动包括选择两个索引 i 和 j,且 i % 2 == j % 2,交换 ...

  2. 893. 特殊等价字符串组

    特殊等价字符串组 转载于:https://www.cnblogs.com/hglibin/p/11000851.html

  3. C#LeetCode刷题-字符串

    字符串篇 # 题名 刷题 通过率 难度 3 无重复字符的最长子串 24.6% 中等 5 最长回文子串 22.4% 中等 6 Z字形变换 35.8% 中等 8 字符串转整数 (atoi) 15.3% 中 ...

  4. ​LeetCode刷题实战450:删除二叉搜索树中的节点

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  5. ​LeetCode刷题实战546:移除盒子

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  6. ​LeetCode刷题实战488:祖玛游戏

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  7. ​LeetCode刷题实战216:组合总和 III

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  8. ​LeetCode刷题实战354:俄罗斯套娃信封问题

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  9. ​LeetCode刷题实战355:设计推特

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

最新文章

  1. Android面试题目之六---Handler,Looper和MessageQueue深入研究
  2. 剑指offer之斐波那契问题(C++/Java双重实现)
  3. GDCM:gdcm::terminal的测试程序
  4. Java快速入门学习笔记9 | Java语言中的方法
  5. VScode+远程服务器docker+C/C++ 代码挑战配置
  6. python重定向作用_Python重定向不起作用
  7. 5G卡位未来? 万物互联的畅想还是忧伤
  8. 字符串的getBytes方法
  9. 上海自来水来自海上,一文掌握这类字符串的验证!
  10. 先尝甜头后食苦果 曾经的光伏巨头如今都身在何方?
  11. 了解Java8中的parallelStream
  12. linux关闭笔记本自带键盘
  13. Unity--游戏字幕
  14. 渡阡科技Edu——梦开始的地方
  15. 期货反向跟单--戏剧性的事实
  16. FP7195大功率零压差全程无频闪调光DC-DC恒流芯片
  17. 单向链表与双向链表的区别
  18. Redis源码分析之PSYNC同步
  19. 苹果手机(IOS)下载不上安装不上charles证书(不弹出下载框)终极解决办法
  20. 项目建议书-在线书籍购物书

热门文章

  1. 【转载】使用tf.py_func函数增加Tensorflow程序的灵活性
  2. Unix——系统调用和库函数调用概念区别和联系
  3. 【今日CS 视觉论文速览】Fri, 18 Jan 2019
  4. 【C++ STL学习之一】容器的共通能力和共通操作总结
  5. windows系统如何进入环境变量
  6. 练习-前程无忧数据爬取
  7. Elasticsearch 搜索数组字段
  8. OSS 上传出现异常
  9. react-native 路由 react-native-router-flux
  10. C中位域结合对齐(pragma)的例子及解释