你将得到一个字符串数组 A

如果经过任意次数的移动,S == T,那么两个字符串 ST 是特殊等价的。

一次移动包括选择两个索引ij,且i % 2 == j % 2,交换 S[j]S [i]

现在规定,A 中的特殊等价字符串组A 的非空子集 S,这样不在 S 中的任何字符串与 S 中的任何字符串都不是特殊等价的。

返回 A中特殊等价字符串组的数量。

示例1:
输入:[“a”,“b”,“c”,“a”,“c”,“c”]
输出:3
解释:3 组 [“a”,“a”],[“b”],[“c”,“c”,“c”]

示例2:
输入:[“aa”,“bb”,“ab”,“ba”]
输出:4
解释:4 组 [“aa”],[“bb”],[“ab”],[“ba”]

示例3:
输入:[“abc”,“acb”,“bac”,“bca”,“cab”,“cba”]
输出:3
解释:3 组 [“abc”,“cba”],[“acb”,“bca”],[“bac”,“cab”]

示例4:
输入:[“abcd”,“cdab”,“adcb”,“cbad”]
输出:1
解释:1 组 [“abcd”,“cdab”,“adcb”,“cbad”]

提示:

  • 1 <= A.length <= 1000
  • 1 <= A[i].length <= 20
  • 所有 A[i] 都具有相同的长度。
  • 所有 A[i] 都只由小写字母组成。
/*** @param {string[]} A* @return {number}*/
var numSpecialEquivGroups = function(A) {};

个人解法

var numSpecialEquivGroups = function(A) {if(A[0].length === 1){//A里面字符串只有一个字符的话,则去重后返回长度return [...new Set(A)].length;}else{//A中的字符串如果不止一个字符,则将字符串的奇数位的字符排序后组成字符串,跟偶数位排序后组成的字符串拼串,然后去重返回长度var result = [];A.forEach(element => {var arr0 = [],arr1 = [];element.split("").forEach((element2 , index) => {if(index % 2 === 0){//偶数arr0.push(element2);}else{//奇数arr1.push(element2);}});//排序arr0.sort((a,b) => a.charCodeAt() - b.charCodeAt());arr1.sort((a,b) => a.charCodeAt() - b.charCodeAt());//存入拼串结果result.push(arr0.join("") + arr1.join(""));});//去重result = [...new Set(result)];return result.length;}
};

LeetCode(893)——特殊等价字符串组(JavaScript)相关推荐

  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. LeetCode中等题之特殊等价字符串组

    题目 给你一个字符串数组 words. 一步操作中,你可以交换字符串 words[i] 的任意两个偶数下标对应的字符或任意两个奇数下标对应的字符. 对两个字符串 words[i] 和 words[j] ...

  4. C#LeetCode刷题之#893-特殊等价字符串组​​​​​​​​​​​​​​(Groups of Special-Equivalent Strings)

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

  5. leetcode 839. 相似字符串组(并查集)

    如果交换字符串 X 中的两个不同位置的字母,使得它和字符串 Y 相等,那么称 X 和 Y 两个字符串相似.如果这两个字符串本身是相等的,那它们也是相似的. 例如,"tars" 和 ...

  6. 如何判断一个字符串在JavaScript中是否包含某个字符?

    本文翻译自:How to tell if a string contains a certain character in JavaScript? I have a page with a textb ...

  7. html5 字符串对象,JavaScript核心对象-String对象

    字符串是JavaScript中最常使用的一个对象,几乎每一个程序都会使用到字符串.与其它基本数据类型一样,字符串也有两种形式:基本数据类型形式和对象形式.JavaScript会根据需要在这两种形式之间 ...

  8. leetcode初级算法6.字符串转整数(atoi)

    leetcode初级算法6.字符串转整数(atoi) 仅为个人刷题记录,不提供解题思路 题解与收获 我的解法: public int myAtoi(String s) {//避免魔法值先设spaceS ...

  9. LeetCode 583. 两个字符串的删除操作(动态规划)

    1. 题目 给定两个单词 word1 和 word2,找到使得 word1 和 word2 相同所需的最小步数,每步可以删除任意一个字符串中的一个字符. 示例: 输入: "sea" ...

最新文章

  1. \r \r\n \t的区别
  2. 为Feign设置Header信息
  3. springboot读取json文件_SpringBoot:配置文件属性读取
  4. mysql二进制日志内容说明_MySQL二进制日志相关问题详细说明
  5. 撒花!吴恩达新书《Machine Learning Yearning》完整中文版pdf开放下载
  6. C++创建对象:栈和堆的区别
  7. 【分享】美图个性化Push AI探索之路(附交流视频和PPT下载链接)
  8. Docker安装Mysql8.0,并配置忽略大小写,一句命令搞定
  9. 要想Essay写得好,切记要警惕这六大禁区
  10. PHP运行Python脚本
  11. 怎样快速将方形图片剪裁成椭圆形?分享大家一个小妙招
  12. JavaScript基于qrcode.js带Logo彩色二维码(艺术二维码)
  13. office2016套装Outlook设置
  14. 徐直军:今年至少3亿设备用上鸿蒙,互联网又一领域暗藏“金矿“
  15. 多人语言聊天以及多人视频聊天
  16. python生成的图片保存成为pdf_python将图像保存为pdf及图片
  17. ClearCase指南-基础篇(连载一)
  18. 微软最新的 Web 开发工具WebMatrix的简单介绍及安装
  19. 一年代码功能点的创新性怎么写_论文的创新点怎么写?
  20. 【Linux 的开胃小菜】JumpServer来袭,开源堡垒机安装及使用教程

热门文章

  1. laravel5.5 尝试使用laravel安装器安装(失败) 最后还是用的composer。。。
  2. IOCP模型TCP服务器
  3. 什么是TensorBoard?
  4. 092:QuerySet API详解-切片操作
  5. Android权限详解
  6. 第三百四十五节,Python分布式爬虫打造搜索引擎Scrapy精讲—爬虫和反爬的对抗过程以及策略—scrapy架构源码分析图...
  7. linux tar 命令 详解
  8. Net4.0—VS2010新特性
  9. 很高兴,自己申请到了一个.net的blog
  10. X86汇编语言从实模式到保护模式14:用户程序编程接口及其实现