首页 > 试题广场 >

字符串排序

[编程题]字符串排序
  • 热度指数:14669 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

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

规则 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).



输入描述:




输出描述:


示例1

输入

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

输出

A aaAAbc dFgghh: iimM nNn oooos Sttuuuy (2012/8).
头像 宁静的冬日
发表于 2022-03-06 12:33:41
【C++】时间复杂度O(n) ">#include<string> using namespace std; #define MAX 1000 int main() { string s="start"; while (s != "") { getline(cin, s 展开全文
头像 csyfZhang
发表于 2020-04-23 09:08:47
stl 30行代码实现字符串排序 https://blog.csdn.net/csyifanZhang/article/details/105699356↑更好的阅读体验 程序分为三步 将输入字符串s的所有字母取出来放到新的字符串t中。 重载char类型的比较函数cmp,如果是大写就转化成小写字母 展开全文
头像 philos
发表于 2021-03-02 17:00:29
思路 我们一条条规则进行分析,首先看前两条,不区分大小写字母以及按照输入顺序排序,这就很简单了,我们构造一个数据结构,给相同的字母赋相同的值,因为要按照输入顺序进行排序,可以使用 stable_sort 或者再向数据结构中添加下标字段,排序的时候值相同比较下标(这里采用第二种做法)。这里也牵扯到 自 展开全文
头像 吴明示
发表于 2022-03-28 10:03:04
等会就上考场了兄弟们。沉住气,放轻松。 #include <cstdio> #include <iostream> #include <string> #include <cstring> #include <vector> #includ 展开全文
头像 狗都不谈恋爱
发表于 2025-03-16 20:13:02
#include <iostream> using namespace std; // 结构体越用越爽,简单无脑,且不用函数 typedef struct { string s; // 记录大小写顺序 int count; // 记录个数 }S; int main() 展开全文
头像 Mysf
发表于 2022-03-09 16:23:06
//设置大小写标记,然后稳定排序 #include <cstdio> #include <cmath> #include <algorithm> #include <vector> #include <map> #include <s 展开全文
头像 CyberAoao
发表于 2023-03-13 21:45:24
利用unordered_map和stable_sort()函数实现自定义的稳定排序 #include <iostream> #include <string> #include <vector> #include <algorithm> #includ 展开全文
头像 ruuioche
发表于 2024-02-01 15:38:16
/* 处理的规则如下:大小写字母按照字母序 同一个字母之间不再改变排序 其他字符保持原位 思路如下:第一次遍历标记出其他字符,排序的时候先读其标记,标记为英文字符才能继续排序 用距离A/a的距离代表权值,用该权值进行排序 需要注意空白符也是要读入的,但是不会排序 第一遍可以标注字符的权重,把 展开全文
头像 牛客440904392号
发表于 2024-10-07 00:52:52
import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.Scanner; public class Main { public static void m 展开全文
头像 健康快乐最重要
发表于 2020-03-05 18:01:47
用结构体把源字符串中是字母(不区分大小写)的位置和字符(都装成小写字母)存下来; struct strw{ int pos; char c; strw(int p,char cc):pos(p),c(cc){} inline bool operator<(con 展开全文