题目描述

编写一个程序,将输入字符串中的字符按如下规则排序(一个测试用例可能包含多组数据,请注意处理)。

规则 1 :英文字母从 A 到 Z 排列,不区分大小写。

如,输入: Type 输出: epTy

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

如,输入: BabA 输出: aABb

规则 3 :非英文字母的其它字符保持原来的位置。

如,输入: By?e 输出: Be?y

样例:

输入:

A Famous Saying: Much Ado About Nothing(2012/8).

输出:

A aaAAbc dFgghh : iimM nNn oooos Sttuuuy (2012/8).

链接:https://www.nowcoder.com/questionTerminal/d9aa3894d3aa4887843a85d26daa4437
来源:牛客网import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner input = new Scanner(System.in);while (input.hasNext()) {String s = input.nextLine();String r = sort(s);System.out.println(r);}}public static String sort(String s) {if (s.length() <= 0) {return null;}char[] c = s.toCharArray();StringBuffer sb = new StringBuffer();// 对字母进行排序的思想是:将每一字符与'a'-'z'或'A'-'Z'做比较,并添加到字符缓冲中,经过此步骤完成了// 不同字母按递增顺序排序,同一字母(不区分大小写)按原来顺序排列。for (int i = 0; i < 26; i++) {for (int j = 0; j < c.length; j++) {if (c[j] == 'a' + i || c[j] == 'A' + i) {sb.append(c[j]);}}}StringBuffer res = new StringBuffer();int flag = 0;for (int i = 0; i < c.length; i++) {if (isChar(c[i])) {res.append(sb.charAt(flag));flag++;} else {res.append(c[i]);}}return res.toString();}// 判断某一字符是否为字母public static boolean isChar(char c) {if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) {return true;} else {return false;}}
}

转载于:https://www.cnblogs.com/JAYPARK/p/10273431.html

牛客网——复杂字符串排序相关推荐

  1. 牛客网之字符串排序与DNA合成

    题目描述: 输入一个长度不超过20的字符串,对所输入的字符串,按照ASCII码的大小从小到大进行排序,请输出排序后的结果 . 输入描述: 一个字符串,其长度n<=20 输出描述: 输入样例可能有 ...

  2. 牛客网——B-栈和排序

    链接:https://www.nowcoder.com/acm/contest/58/B 来源:牛客网 题目描述 给你一个1->n的排列和一个栈,入栈顺序给定 你要在不打乱入栈顺序的情况下,对数 ...

  3. 牛客网 间单排序(LIS算法)

    链接:https://ac.nowcoder.com/acm/contest/547/F 来源:牛客网 题目描述 LXK有一个序列,从N~1,但是他不小心把序列打乱了,现在他想找你把这串序列复原. 他 ...

  4. 牛客网|倒置字符串|超详细讲解

    题目:将一句话的单词进行倒置,标点不倒置.比如 I like beijing. 经过函数后变为:beijing. like I 输入描述: 每个测试输入包含1个测试用例: I like beijing ...

  5. java按字节截取字符串牛客网_字符串计数

    /*看了之前50多个答案,发现大部分都是错误的,根据自己对题目的理解,给出了以下思路,目前 我还没有找到bug,欢迎牛友们检查,如有bug,我继续修改,答题思路是对的*/ /*首先是从之前的几个测试样 ...

  6. 【牛客网】——字符串的旋转

    题目描述 对于一个字符串,和字符串中的某一位置,请设计一个算法,将包括i位置在内的左侧部分移动到右边,将右侧部分移动到左边. 给定字符串A和它的长度n以及特定位置p,请返回旋转后的结果. 测试样例: ...

  7. 【牛客网】字符串专项练习

    问题: 下列数据结构不是多型数据类型的是() A:堆 B:栈 C:字符串 D:有向图 答案:字符串 解析:多型数据类型是指包含的数据元素的类型并不确定.比如栈可以是整数栈.字符栈.对象栈等等.但是字符 ...

  8. 牛客网循环输入输出测试——C语言scanf和printf用法

    在实际的编程中需要自己写出完整的程序,预留好输入的接口,使用while循环接收多个测试用例,C语言在输出时printf要用换行"\n". 字符串输入输出问题见博客:牛客网字符/字符 ...

  9. 【百日冲大厂】第二篇,牛客网选择题+排序子序列+倒置字符串

    前言: 大家好,我是良辰丫,今天是刷题的第二篇,牛客网选择题+排序子序列+倒置字符串,每天都去努力,每天都庆幸今天的自己比昨天的自己更优秀,加油,为理想而努力吧!!!

  10. 牛客网暑期ACM多校训练营(第三场) E Sort String 哈希处理字符串(模板)

    链接:https://www.nowcoder.com/acm/contest/141/E 来源:牛客网 Eddy likes to play with string which is a seque ...

最新文章

  1. EventBus3.0 List事件遇到的坑
  2. Redis 学习---(4)Redis 数据类型
  3. 文本编辑器nano使用
  4. java单链表存储结构_Java数据结构——单链表
  5. Spring Security Oauth2 认证(获取token/刷新token)流程
  6. mac上配置mysql
  7. 无线通信原理与应用笔记
  8. 关于cc2500的介绍
  9. 【上汽零束SOA】云管端一体化SOA软件平台系列介绍之二:数字架构篇
  10. 海康NVR录像机集成大华摄像头
  11. 面试题猜想:1+1等于几?
  12. 硬件管理 远程开机,网络开机
  13. 两种方法模仿支付宝进入到后台界面模糊
  14. 北大核心2020_2020年北大核心论文如何发表
  15. 试用北大CoBOT源代码缺陷工具在Linux系统下安装
  16. 蛋白质组学研究的经典方法:双向电泳技术解读
  17. PHp网站建设,期末大作业-海贼王主题【包含前后台】
  18. 爬取马蜂窝英国旅行攻略
  19. 基于matlab的gui设计与实现,毕业设计基于MATLAB GUI的数字图像处理的设计与实现(V2.1)...
  20. 如何学习MATLAB

热门文章

  1. 拓端tecdat|Stata中的治疗效果:RA:回归调整、 IPW:逆概率加权、 IPWRA、 AIPW
  2. (9)机器学习_多分类器OneVsRestClassifier
  3. pandas根据列值读取行
  4. 终极分类器(识别器),一个人工智能的美好愿景
  5. 批量输出lib文件名(PCL或者opencv等环境配置)
  6. 服务器显示跨域请求,出现跨域问题的原因及其解决方法
  7. 如何操作反射中构造方法、属性和普通方法?
  8. C++ 类 class 构造函数 : 成员赋值 父类提前构造
  9. Docker教程小白实操入门(9)--基于export导出容器与基于import导入一个镜像
  10. 微信小程序云开发教程-JavaScript入门(3)-数据类型