笔试编程题:字符重排
2021/9/8 20:08:24
本文主要是介绍笔试编程题:字符重排,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
题目描述:
有一个字符串s,s中有n个字符,只可能是小写字母和数字组成,请将字符串的字母按照英文字典字母顺序排列,数字按从小到大排列,排序后的字符串疮毒与原字符串长度相同,但原位置的字符种类不能变更,如果原位置是数字仍是数字,原位置是字符串仍是字符串,如输入:hgfgfaada653234xx2de 输出:aaadddeffg223345gh6xx
输入描述:
输入一个数字T,表示有T组测试数据,对于每组测试数据,输入一个正整数n,表示字符串的长度,然后再输入字符串。
输出描述:
输出T行,每行按题目要求输出排序后的字符串。(第T行输出不要有换行符,会导致输出T+1行空格)
代码:
import java.util.*; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = Integer.parseInt(sc.nextLine()); String[] r = new String[T]; for(int k = 0; k < T; k++){ int n = Integer.parseInt(sc.nextLine()); String s = sc.nextLine(); String res = ""; char[] ar = s.toCharArray(); Arrays.sort(ar); int strIndex = 0; int numIndex = 0; for(int i = 0; i < n; i++){ if((int)ar[i] >= 97){ strIndex = i; break; } } for(int i = 0; i < n; i++){ if(s.charAt(i)<97){ res += ar[numIndex]; numIndex++; }else{ res += ar[strIndex]; strIndex++; } } r[k] = res; } for(int i = 0; i < T-1; i++){ System.out.println(r[i]); } System.out.print(r[T-1]); } }
这篇关于笔试编程题:字符重排的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-06小米11i印度快充版ROM合集:极致体验,超越期待
- 2024-10-06【ROM下载】小米11i 5G 印度版系统, 疾速跃迁,定义新速度
- 2024-10-06【ROM下载】小米 11 青春活力版,青春无极限,活力全开
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求