首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

仅对组合了数字、number_letters、letters_numbers和字母的数组进行排序

对于组合了数字、number_letters、letters_numbers和字母的数组进行排序,可以使用以下步骤:

  1. 遍历数组,将数组中的元素按照数字、number_letters、letters_numbers和字母的顺序进行分类。可以使用正则表达式或条件判断来判断元素的类型。
  2. 将每个分类中的元素进行排序。对于数字,可以使用快速排序或归并排序等常见的排序算法。对于字母,可以使用字母的ASCII码进行比较排序。
  3. 将排序后的每个分类合并成一个新的数组。可以使用数组的concat方法或者循环遍历的方式进行合并。

以下是一个示例的JavaScript代码实现:

代码语言:txt
复制
function sortArray(arr) {
  const numbers = [];
  const numberLetters = [];
  const lettersNumbers = [];
  const letters = [];

  // 分类
  for (let i = 0; i < arr.length; i++) {
    const element = arr[i];
    if (typeof element === 'number') {
      numbers.push(element);
    } else if (/^\d+[a-zA-Z]+$/.test(element)) {
      numberLetters.push(element);
    } else if (/^[a-zA-Z]+\d+$/.test(element)) {
      lettersNumbers.push(element);
    } else if (typeof element === 'string') {
      letters.push(element);
    }
  }

  // 排序
  numbers.sort((a, b) => a - b);
  numberLetters.sort();
  lettersNumbers.sort();
  letters.sort();

  // 合并
  const sortedArray = numbers.concat(numberLetters, lettersNumbers, letters);
  return sortedArray;
}

const array = [1, 'a2', '2a', 'b', '3c', '4', 'd5', 'e', 6];
const sortedArray = sortArray(array);
console.log(sortedArray);

对于这个问题,腾讯云没有特定的产品与之相关,因此无法提供腾讯云相关产品和产品介绍链接地址。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

LeetCode笔记:389. Find the Difference

思路: 感觉什么都要想到排序,按照字母顺序排序后依次比较过去出现不同数字就是,但是排序比较耗时。...于是我思考另一种方法,遍历t中字母,在s中寻找有没有这个字母,有的话就在s中去掉这一个字母然后继续遍历寻找,如果在s中找不到了,说明就是它,这样做出来我实现时间是31ms,但是其实想想这样找跟排序相比时间复杂度好像还是半斤八两...,弄一个26位数字数组,看做是每个位置对应26个字母,然后一位位地遍历st中每个字母,在其字母对应位置去进行加减操作,s中字母就加1,t中字母就减1。...因为t只比s多了一个字母,其余都是一样,所以加加减减最后得到数字数组一定是一个仅有一个位置值是-1,其余都是0数组。...其实对于这种字母操作题目,尤其是还特别声明了都是小写字母,就应该条件反射地想到26字母对应26位数字数组,还是训练不够啊。

27030

程序员进阶之算法练习(八十九)leetcode

题目1 组合总和 题目链接 题目大意: 给你一个 无重复元素 整数数组 candidates 一个目标整数 target ,找出 candidates 中可以使数字为目标数 target ...对于给定输入,保证为 target 不同组合数少于 150 个。...题目解析: 题目要找出所有组合,并且一个数字可以无限选,那么可以用这样枚举方式: 初始化状态,curTarget=target,记录剩下数字; 对于数字a[0],不断选择从curTarget...题目链接 题目大意: 给定一个字符串数组,将字母异位词组合在一起。...题目解析: 字母异位词相当于每个字符出现次数一致,那么字符串中位置信息是无用,可以统计每个字符串中字母数量,每个字符可以转为长度为26数组; 接下来用排序方式,将所有的数组进行排序,这样数组一样就会变得相邻

19030
  • 算法--排序--大小写字母数字分离(桶排序思想)

    题目: 对D,a,F,B,c,A,z这个字符串进行排序,要求将其中所有小写字母都排在大写字母前面,但小写字母内部大写字母内部不要求有序。...比如经过排序之后为a,c,z,D,F,B,A,这个如何来实现呢?如果字符串中存储不仅有大小写字母,还有数字。要将小写字母放到前面,大写字母放在中间,数字放在最后,不用排序算法,又该怎么解决呢?...思路: 先扫描一遍数组,计算3种类型元素个数,计算出每个类型起始下标 扫描一遍,分别写入该去 “桶” ,再写回原数组,O(n)复杂度 桶排序参考:https://blog.csdn.net/qq_...{ cout << arr[i] << " "; } cout << endl; } int main() { cout << "请输入N,程序生成大小写字母数字组合随机序列...][大写字母][数字]排列,内部顺序不变:" << endl; countseparate(ch, N); printArr(ch, N); } ?

    1.6K10

    Linux Shell工具篇 - 文本排序工具sort

    介绍 sort命令在Linux里非常有用,它将文本文件内容进行排序,并将排序结果标准输出或重定向输出到指定文件。...-k 指定需要排序列 -d 排序时,处理英文字母数字及空格字符外,忽略其他字符 -f 排序时,将小写字母视为大写字母 -b 忽略每行前面开始出空格字符 -o 输出文件 将排序结果存入指定文件...-u 意味着是唯一(unique),输出结果是去完重 -m 将几个排序文件进行合并 参数:指定待排序文本文件 演示 数据文件准备:sort.txt 1234567 张三 30 李四...95 播仔 85 播仔 85播仔 86AA 85播妞 100 1.数字升序 按照空格分割后第2列数字升序排序: 123 sort -t " " -k2n,2 sort.txt# -t " " 代表使用空格分隔符拆分列...# -k 2n,2 代表根据从第2列开始到第2列结束进行数字升序, 仅对第2列排序 运行效果 2.

    2.3K40

    leetcode-49-字母异位词分组(神奇哈希)

    题目描述: 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同字符串。...不考虑答案输出顺序。 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同字符串。...那可不可以同样利用这种方法来处理字母串呢? 答案是可以,我们可以用哈希表。 哈希表其实就是数组+链表结构,在c++中,笔者觉得map这种数据结构可能就是实现哈希表算法。...哈希表结合数组快速访问、修改链表无限长度两个特点,可以参考下面这张图。 ? 左边是数组,快速访问修改,右边链表延伸出去,无限长度。  ...(),strs1[i].end());//对字符串中字母进行排序 if(!

    70810

    Java入门(5)-- 数组

    在Java语言中,数组是具有相同数据类型一组数据组合数组每个元素具有相同数据类型。...先声明,再用new关键字进行内存分配 声明两种方式: 数组元素类型 数组名字[] 数组元素类型[] 数组名字 数组元素类型决定数组数据类型,它可以是Java中任意数据类型,包括简单类型组合类型...因此数字排在字母前面,大写字母排在小写字母前面。...注:必须在进行此调用之前对数组进行排序,如果没有对数组进行排序,则结果是不确定。如果数组包含多个带有指定值元素,则无法保证找到是哪一个。...算法示例 冒泡算法由双层循环实现,其中外层循环用于控制排序轮数,一般为要排序数组长度减1次,因为最后一次循环只剩下一个数组元素,不需要对比,同时数组已经完成排序;而内层循环主要用于对比数组中每个相邻元素大小

    46420

    拿下 BAT+华为校招 200 题 LeetCode 高频题库

    好几月,属实抱歉。 下面是程序锅自己对网上发布 200 道高频面试题进行分类之后结果。这 200 道,程序锅大概花了 7 个月刷完了,并且差不多每道题都过了好几遍。...40-组合总和 2 46-全排列 17-电话号码字母组合(回溯算法) 79-单词搜索(深度) 200-岛屿数量(深度、广度) 数组 题目 offer04/240-二维数组查找/搜索二维矩阵 2...) offer59/239-滑动窗口最大值(队列) 394-字符串解码(栈;深度) 581-最短无序连续子数组(选择排序思想;排序;单调栈;对数组进行分段,找出左边界右边界) 树 题目 144-...-旋转数组最小数字 哈希 题目 771-宝石与石头(哈希表) 575-分糖果(哈希表) 242-有效字母异位词(排序;哈希表+字符串) 49-字母异位词分组(哈希表+字符串) 1-两数之和(哈希...-划分字母区间(哈希+双指针) 349-两个数组交集(哈希) offer50-第一个只出现一次字符(哈希表) 位运算 题目 offer56-数组数字出现次数(位异或) offer56-数组数字出现次数

    2.5K30

    C#3.0新增功能09 LINQ 标准查询运算符 04 运算

    通过指定第二个排序条件,您可以对每个主要排序组内元素进行排序。 下图展示对一系列字符执行按字母顺序排序操作结果。 ? 下节列出了对数据进行排序标准查询运算符方法。...下面的示例演示如何在 LINQ 查询中使用 orderby descending 子句按字符串第一个字母对字符串进行降序排序。...首先按字符串长度,其次按字符串第一个字母,对字符串进行升序排序。...首先按字符串长度,其次按字符串第一个字母,对字符串进行排序。...join 子句 如何:使用组合进行联接 如何:联接不同文件内容 (LINQ) (C#) 如何:对 join 子句结果进行排序 如何:执行自定义联接操作 如何:执行分组联接 如何:执行内部联接 如何

    9.7K20

    必看 | github网红收集48个常用JavaScript代码片段

    对于给定字符串中每个字母,为字母创建字谜。使用map()将字母与每部分字谜组合,然后使用reduce()将所有字谜组合到一个数组中,最基本情况是字符串长度等于2或1。...首字母大写 使用slice(0,1)toUpperCase()大写第一个字母,slice(1)获取字符串其余部分。...使用Array.map()Math.random()创建一个随机值数组。...使用Array.sort()根据随机值对原始数组元素进行排序。  数组之间相似性   使用filter()移除不是values一部分值,使用includes()确定。...isNaNparseFloat()来检查参数是否是一个数字,使用isFinite()来检查数字是否是有限。 const validateNumber = n => !

    60930

    图文详解什么是快速排序

    排序重要性在第2章中已经说明。要高效地搜索数据集,比如采用第1章中介绍二分搜索,数据集必须是有序。就像大城市电话号码簿,如果没有按照字母顺序排序,想象一下你该如何找一个需要号码。...不过就像插入排序一样,这样算法并非只能处理数字,对于按照字母顺序给书名排序问题同样有效,甚至可以推广到更一般情况,只要处理对象能够按照某种意义上“尺寸”或“价值”比较大小,同样可以使用这里介绍算法...例如,你可以按照算法给轻重不等包裹排序,每次基本操作是用天平比较两个包裹。我本人通常使用算法1按照姓名字母顺序给学生考试排序。...这段程序还可以改进以运行得更快:不是仅对数组A应用递归,而是让递归交替地用于AB,就可以避免将数组B存入数组A。这里不再详细讨论。...相比合并排序,快速排序还有个优点,它不需要辅助数组B,只在输入数组A上操作。分割序列(算法第2步)是通过“指针变量”i来实现

    3.7K10

    精心收集 48 个 JavaScript 代码片段,仅需 30 秒就可理解

    对于给定字符串中每个字母,为字母创建字谜。使用map()将字母与每部分字谜组合,然后使用reduce()将所有字谜组合到一个数组中,最基本情况是字符串长度等于2或1。...首字母大写 使用slice(0,1)toUpperCase()大写第一个字母,slice(1)获取字符串其余部分。...使用Array.map()Math.random()创建一个随机值数组。...使用Array.sort()根据随机值对原始数组元素进行排序。 ? 数组之间相似性 使用filter()移除不是values一部分值,使用includes()确定。...isNaNparseFloat()来检查参数是否是一个数字,使用isFinite()来检查数字是否是有限。 const validateNumber = n => !

    2.1K120

    前端学数据结构与算法(十三):01执行艺术 - 回溯算法(上)

    如果你说这个很简答,使用循环也可以解决,那题目条件换一下,给出数字1 - 20之间每12种组合可能性,这时遍历就不好使。...其实上面的描述:每一个数字,等于它之前所有元素加上自身已经将子问题进行拆解。...17 - 电话号码字母组合 ↓ 给定一个仅包含数字 2-9 字符串,返回所有它能表示字母组合。 给出数字字母映射如下(与电话按键相同)。注意 1 不对应任何字母。...我们需要一个辅助函数来帮助我们这件事,它做事就是把数字对应字母取出来,用取出来字母,去下一个数字对应字母进行组合,最终找到所有组合。 什么时候算是找到了一个符合要求组合?...还有一个信息是可以无限制使用数组某个数,排序之后这个操作也会很方便,直接从最小数开始统计每种组合可能。

    53300

    九键输入组合与四数之和——LeetCode 16、17 题记

    题目一 第 17 题 电话号码字母组合: 给定一个仅包含数字 2-9 字符串,返回所有它能表示字母组合。 给出数字字母映射如下(与电话按键相同)。注意 1 不对应任何字母。 ?...好吧,数字 1 键还没内容,叫它八键组合得了。 思路 首先是数字字母过程:我们输入 "23" 那么要先取到 "2" 对应 "abc" "3" 对应 "def"。...然后我们将二者拆分组合得到结果。 数字字母这个过程,吸取之前题目中经验,事先写好一个不同数字对应不同字母字典,一来哈希字典方便快速查找,二来也省代码提取麻烦。...temp_sum=[] # 对第 i 位数字串对应字母串中每个字母进行遍历 for c in table[digits[i]]...至于改进生成字母组合就没啥想法,直接去题解与评论里观摩,发现两种可以借鉴思路:回溯法 pythonic 列表推导式应用。

    72830

    9月技术文章汇总

    缺失第一个正数 【Leetcode】40.组合总和 II 【Leetcode】39. 组合总和 【Leetcode】38. 报数 【Leetcode】37. 解数独 【Leetcode】36....有效数独 【Leetcode】35. 搜索插入位置 【Leetcode】34. 在排序数组中查找元素第一个最后一个位置 【Leetcode】33. 搜索旋转排序数组 【Leetcode】32....删除排序数组重复项 【Leetcode】25. k个一组翻转链表 【Leetcode】24. 两两交换链表中节点 【Leetcode】23. 合并K个排序链表 【Leetcode】22....有效括号 【Leetcode】19. 删除链表倒数第N个节点 【Leetcode】18. 四数之和 【Leetcode】17. 电话号码字母组合 【Leetcode】16....两个排序数组中位数 【Leetcode】3. Longest Substring Without Repeating Characters 【Leetcode】2.

    73440

    javascript 自己实现数字字母中文混合排序方法 by FungLeo

    javascript 自己实现数字\字母中文混合排序方法(纯粹研究,不实用) 前言 在上一篇博文《javascript 数组排序sort方法自我实现排序方法学习小结》中,我用自己方法实现数字数组排序...当然,实际运用中,我还是会使用sort方法更加方便.但是,我上一篇博文,仅仅是实现数字排序,而srot方法默认可是能给字母实现排序哦!而我代码只能排序数字,看起来还是弱弱....如果是数字,则直接是数字进行比对 如果是字符串,则使用charCodeAt()转换成Unicode编码进行排序....Unicode 是 0 - 65535 之间整数 其他说明 按照正常排序逻辑,应该是:数字比一切字母都小,字母比一切中文都小,中文应该按照首字拼音字母排序....逻辑也应该可以实现,把数字字母中文分别找出来,数字数组进行比较,字母字母比较,中文跟中文比较,然后拼接数组 中文获取首字字母可能稍微麻烦一点. 汉字居然可以直接比对.

    1.5K20

    带你学透回溯算法-组合总和

    组合总和 力扣题目链接:https://leetcode-cn.com/problems/combination-sum/ 给定一个无重复元素数组 candidates 一个目标数 target ,...找出 candidates 中所有可以使数字为 target 组合。...candidates 中数字可以无限制重复被选取。 说明: 所有数字(包括 target)都是正整数。 解集不能包含重复组合。...本题77.组合,216.组合总和III区别是:本题没有数量要求,可以无限重复,但是有总和限制,所以间接也是有个数限制。...如果是多个集合取组合,各个集合之间相互不影响,那么就不用startIndex,例如:17.电话号码字母组合 注意以上我只是说求组合情况,如果是排列问题,又是另一套分析套路,后面我再讲解排列时候就重点介绍

    93220

    【Leetcode】vector刷题

    题目链接:26.删除有序数组重复项 题目描述: 这题是一道简单双指针思路题,由于已经排序好,我们只需要设置两个索引,一个向后遍历,若与前面的索引指向值不相同,则对前面的值进行修改 lass...在解决问题时,我们首先会通过对所有数字进行异或得到 diff,这代表两个只出现一次数字差异。...这个1所在位将用于分辨哪些数字在该位为0或1 —— 这正是对数组进行划分依据 6.电话号码字母组合 题目链接:17.电话号码字母组合 题目描述: 这个问题可以通过回溯法解决,这是一种通过穷举所有可能解来找到全部解算法...基本思想是从左到右遍历数字字符串,对于每个数字,向当前字母组合中添加对应每个字母,然后对剩余字符串重复这个过程。...} } }; 这段代码定义一个辅助函数 backtrack,用来递归寻找所有可能字母组合

    10710

    angular内置过滤器

    ng提供八种描述性字符串,个人觉得这些有点多余,我完全可以根据自己意愿组合出想要格式,不愿意去记这么多单词~   3. filter(匹配子串)  这个名叫filterfilter...个人觉得这个filter有点鸡肋,首先只能从数组或字符串开头/尾部进行截取,其次,js原生函数就可以代替它,看看怎么用吧: {{ childrenArray | limitTo : 2 }}...太简单,不多解释。同样是很鸡肋一个filter,没有参数,只能把整个字符串变为小写,不能指定字母。怎么用我都懒得写了。   7. uppercase(大写)   同上。   ...同时接收一个参数,可以指定float类型保留几位小数: {{ num | number : 2 }}   9. orderBy(排序)  orderBy过滤器可以将一个数组元素进行排序...还可以是一个数组,表示依次按数组属性值进行排序(若按第一项比较值相等,再按第二项比较),还是拿上面的孩子数组举例: {{ childrenArray | orderBy : 'age' }}

    18420

    ​LeetCode刷题实战49:字母异位词分组

    题意 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同字符串。 举个例子,比如给定数组是[eat, ate, tea, tan, nat, bat]。...但是这又有一个问题,dict当中key并不一定是有序,所以我们需要对dict进行排序,可以看下下图中流程。 ? 也就是说我们需要实现一个函数,它输入是字符串,输出是这个字符串构成元素。...其实hash算法内容很简单,可以简单理解成映射。我们输入可以是任何内容,可以是一个数字,也可以是个数组或者是一个对象,但是我们输出是一个固定若干个字节组成信息。...但是由于涉及到了排序,稍稍复杂一些,并且最后返回是一个字符串,从时间复杂度空间复杂度上来看,都还有优化空间,下面我们就来看一个比较常用hash算法。...是取ascii码运算,即将英文字母转成数字

    32820
    领券