js实现字符串排序

2023-11-13

规则:

规则 1 :英文字母从 A 到 Z 排列,不区分大小写。
如,输入: Type 输出: epTy

规则 2 :同一个英文字母的大小写同时存在时,按照输入顺序排列。
如,输入: BabA 输出: aABb

规则 3 :非英文字母的其它字符保持原来的位置。
如,输入: By?e 输出: Be?y

注意有多组测试数据,即输入有多行,每一行单独处理(换行符隔开的表示不同行)
while(line=readline()){
	//字符串切分为数组
    let s=line.split("");
    let box = [];
        //symbols数组非字母:每一项元素是数组,由索引和索引所在的数据组成
        let symbols = [];
        for (let i = 0; i < 26; i++) {
            box[i] = "";
        }
        //box数组收集26个数据:每一个数据是字母或字母大小写的组合串或空串(初始化没有值)
        for (let i = 0; i < s.length; i++) {
            let code = s[i].charCodeAt();
            
            if (code >= 97 && code < 123) {//小写字母:97-122
                box[code - 97] += s[i];           
            } else if (code >= 65 && code < 91) {//大写字母65-90
                box[code - 65] += s[i];
            } else {//非字母
                symbols.push([i, s[i]]);
            }
        }
 
        //console.log(box);
        //["AaaAA", "b", "c", "d", "", "F", "gg", "hh", "ii", "", "", "", "mM",
        //"nNn", "oooo", "", "", "", "sS", "tt", "uuu", "", "", "", "y", ""]
        //console.log(symbols);
 
        let res = "";
        box.forEach(item => {
            res += item;
        })
        //console.log(res); 输出 :AaaAAbcdFgghhiimMnNnoooosSttuuuy
		
		//item[0]:特殊字符所在的索引
		//item[1]:特殊字符的值
        symbols.forEach(item => {
            res = res.slice(0, item[0]) + item[1] + res.slice(item[0]);
        })
        console.log(res);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

js实现字符串排序 的相关文章

  • 详细讲解MMU——为什么嵌入式linux没他不行?

    MMU内存管理 MMU Memory Management Unit 内存管理单元 是一种硬件模块 用于在CPU和内存之间实现虚拟内存管理 其主要功能是将虚拟地址转换为物理地址 同时提供访问权限的控制和缓存管理等功能 MMU是现代计算机操作
  • Git安装详解(写吐了,看完不后悔)

    Git 是一个非常流行的分布式版本控制系统 它帮助开发者管理和跟踪项目中的代码变化 通俗地说 可以认为 Git 就像是一个代码的时间机器 它记录了项目从开始到结束的每一次代码变动 无论你是个人开发者还是团队成员 掌握 Git 都能提高你的工
  • 2023年深圳杯A题完整版论文

    专栏内已发布ABCD篇 论文 思路 代码 订阅即可看到
  • 单元测试简单示例:python+unittest+ddt+HTMLTestRunner+config配置文件(重在思路)

    这是一个基于数学运算加减法的单元测试示例 重点在于单元测试的设计思路梳理 目的 测试数据从excel中获取 执行后并将结果写入excel 并生成报告 重点 可根据代码中的注释进行帮助理解设计思路 下面是我的测试结构 下面来解释一下各个目录及
  • 完成端口(CompletionPort)详解 - 手把手教你玩转网络编程系列之三

    http blog csdn net xujiezhige article details 41115453
  • 5G时代的应用场景及商业模式和财富商机

    原创文章 转载请与作者联系 0 前言 互联网兴起 诞生了一批富翁 如马云 马化腾 移动互联网兴起后 3G时代 有人做电商发财了 4G时代 有人写公众号月入六位数 有人主播卖货日进斗金 有人靠着短视频实现了财务自由 5G将开启充满机会的时代
  • Hadoop的安装(单机、伪分布、完全分布)

    安装单机模式 1 设置Hadoop配置文件 进入Hadoop配置文件所在目录 修改hadoop env sh文件 2 测试Hadoop 创建输入文件 input 在data txt中写下内容 运行Mapreduce WordCount例子
  • USB接口针式打印机

    1 针式打印机原理 针式打印机16针是纵向排列 每次打印垂直的16bit 然后右移一bit 继续下列打印 字节的MSB表示最上面的点 字节LSB表示最下面的点 由于汉字字模的点阵是横向排列的 而提供给打印头的信息却需要按纵向排列 所以必须再
  • 合并两个链表

    输入两个单调递增的链表 输出两个链表合成后的链表 当然我们需要合成后的链表满足单调不减规则 public class Solution public ListNode Merge ListNode list1 ListNode list2
  • IDEA创建Javaweb项目之方法3之使用JavaEnterprise

    目录 1 file project enterprise 2 结构如下 3 配置Tomcat服务器 4 重要部署不要忘记 ps idea中别配置错Tomcat 1 file project enterprise 无脑默认即可 2 结构如下
  • Linux命令_netstat & 接口、端口、路由统计

    简介 netstat用于打印网络连接 路由表 接口统计信息 伪装连接和多播成员关系 netstat打印关于Linux网络子系统的信息 打印信息的类型由第一个参数控制 语法 netstat veenNcCF
  • maven打成jar包

    还是实践出真知啊
  • 算法题目练习(C/c++/java)

    记录做过的经典题型 以便于以后查看 目录 二分法 1 二分查找一个数 2 二分查找左边界 3 二分查找右边界 计算最大公约数 辗转相除 递归辗转 链表的逆置 前缀和求法 一维前缀和 二维前缀和 包子凑数 扩展欧几里得算法 例子 青蛙的约会
  • 【全民编程】《软件编程-讲课视频》【零基础入门到实战应用】

    第一阶段 零基础编程到入门 视频讲解 第二阶段 工作实操指导
  • EC变色玻璃介绍

    EC Electrochromic 全称电致变色 最外层的两层EC器件基底将所有材料包裹起来 EC器件基底大部分为玻璃 变色玻璃组成 EC变色的本质是在电压作用下材料的光学性质 透过率 反射率 吸收率等 发生稳定 可逆的变化 在EC薄膜两边

随机推荐

  • VMM基础

    复杂度3 5 机密度3 5 最后更新2021 04 20 VMM Virtual Memory Management是所有操作系统都要解决的问题 也是非常硬件相关的问题 必须从硬件CPU的地址管理开始谈起 我们先了解一些术语 Page 内存
  • Sklearn——5折交叉验证评估模型性能

    学习资料 sklearn 中文文档 http www scikitlearn com cn pandas cookbook https github com iamseancheney pythonbooks blob master Pan
  • NLP-分词器:SentencePiece【参考Chinese-LLaMA-Alpaca在通用中文语料上训练的20K中文词表并与原版LLaMA模型的32K词表进行合并的代码】

    背景 随着ChatGPT迅速出圈 最近几个月开源的大模型也是遍地开花 目前 开源的大语言模型主要有三大类 ChatGLM衍生的大模型 wenda ChatSQL等 LLaMA衍生的大模型 Alpaca Vicuna BELLE Phoeni
  • 业内首发

    区块链数据服务 Blockchain Data Service BDS 是京东云区块链产品部发推出的 其将区块链的链式 非结构化数据通过技术手段进行结构化存储 实时同步到高性能数据仓库中 用户可以通过区块链数据查询工具 实现简单的条件查询和
  • springboot+rabbitmq两小时入门(七):生产者发送失败和消费者消费失败处理

    消息队列经常会发送失败和消费失败 这两种问题在日常工作中是不可忽视的 消息发送失败情况 1 网络抖动导致生产者和mq之间的连接中断 导致消息都没发 答 rabbitmq有自动重连机制 叫retry 具体到rabbitTemplate中叫re
  • LVS——DR模式下的健康检查(ldirectord)

    对后端服务器健康检查 如果一个后端服务器挂掉将这个服务器踢出集群 让用户无感知 否则会出现访问时好时坏的情况 当宕机的服务器恢复正常时自动将他加回集群 当服务器集群宕机的时候返回一个统一的错误页面 这个页面来自于调度器 注意 ldirect
  • linux 下搭建BugFree

    遇到问题 公司项目组开发小组需要搭建缺陷管理系统 方便开发小组提交Bug 介绍 BugFree基于PHP和MySQL开发 是免费且开放源代码的缺陷管理系统 服务器端在Linux和Windows平台上都可以运行 客户端无需安装任何软件 通过I
  • [运维] 在debian系统下安装KODExplorer(可道云)

    系统环境说明 系统 Debian GNU Linux 10 buster 平台 amd64 参考文献 KODExplorer 系统环境软件安装 KODExplorer 运行环境软件安装 sudo apt install php php cu
  • python线程池 ThreadPoolExecutor 使用详解

    从 Python3 2 开始 标准库为我们提供了 concurrent futures 模块 它提供了 ThreadPoolExecutor 和 ProcessPoolExecutor两个类 实现了对 threading 和 multipr
  • [ACTF2020]exec

    ACTF2020 exec 点开进入题目 可以看见一个ping 首先第一反应是输入自己电脑的地址 可以得到 然后凭感觉进行 输入127 0 0 1 whoami 因为linux的默认用户组是www data 因此这是linux 继续下去 遍
  • Flash地址空间的数据读取——STM32

    目录 一 STM32 的内部 FLASH 简介 二 工程验证 三 总结 参考链接 一 STM32 的内部 FLASH 简介 在 STM32 芯片内部有一个 FLASH 存储器 它主要用于存储代码 我们在电脑上编写好应用程序后 使用下载器把编
  • Linux学习笔记——Linux实用操作(二)

    04 Linux实用操作 4 6 IP地址 主机名 4 6 1 IP地址 主机名 学习目标 掌握什么是IP地址 掌握什么是主机名 掌握什么是域名解析 4 6 1 1 IP地址 1 每一台联网的电脑都会有一个地址 用于和其它计算机进行通讯 I
  • Qt界面之间信息传递(自身项目经验,一文必懂)

    Qt最常用的就是信号与槽这一结构 对于这一结构 我们可以看下Qt4和Qt5以上版本的差别 connect ui gt QCP fabric edit SIGNAL mousePress QMouseEvent this SLOT myMou
  • NVIDIA驱动安装及报错处理

    NVIDIA驱动安装及报错处理 下载GPU驱动包 安装GPU驱动包 卸载GPU驱动包 GPU驱动包安装排错 下载GPU驱动包 驱动下载 https www nvidia com Download Find aspx 复制好地址后 使用wge
  • order函数的简单使用

    a lt c 5 4 3 2 1 b lt c 1 2 3 4 5 c lt cbind a b c order c 1 按第一列递增排序 转载https blog csdn net illfm article details 152183
  • Hinton开源CapsuleNet

    当前的深度学习理论是由Geoffrey Hinton大神在2007年确立起来的 但是如今他却认为 CNN的特征提取层与次抽样层交叉存取 将相同类型的相邻特征检测器的输出汇集到一起 是大有问题的 去年9月 在多伦多接受媒体采访时 Hinton
  • Restful定义,接口设计原则及优点

    1 什么是REST REST全称是Representational State Transfer 中文意思是表述 编者注 通常译为表征 性状态转移 它首次出现在2000年Roy Fielding的博士论文中 Roy Fielding是HTT
  • JVM各垃圾回收器优缺点及应用场景

    目录 为什么需要使用垃圾收集器 JVM各垃圾收集器特点 1 Serial收集器 2 ParNew收集器 3 Parallel Scavenge收集器 4 Serial Old收集器 5 Parallel Old收集器 6 Serial Se
  • 华为OD机试真题- 红黑图

    题目描述 众所周知红黑树是一种平衡树 它最突出的特性就是不能有两个相邻的红色节点 那我们定义一个红黑图 也就是一张无向图中 每个节点可能有红黑两种颜色 但我们必须保证没有两个相邻的红色节点 现在给出一张未染色的图 只能染红黑两色 问总共有多
  • js实现字符串排序

    规则 规则 1 英文字母从 A 到 Z 排列 不区分大小写 如 输入 Type 输出 epTy 规则 2 同一个英文字母的大小写同时存在时 按照输入顺序排列 如 输入 BabA 输出 aABb 规则 3 非英文字母的其它字符保持原来的位置