牛客网---字符串-字符串排序_根据字符串中的时间信息排序并输出牛客网-程序员宅基地

技术标签: # 牛客  

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

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

def f(s):
    a, L = [], len(s)
    for i in range(L):
        if s[i].isalpha():   #判断是否为字母
            a.append((s[i], s[i].lower(), i))   #在列表中添加小列表(这个元素,以及小写,和位置)
    b = sorted(a, key=lambda x:(x[1], x[2], x[0]))  #lanbda是匿名函数,x是参数,冒号后边是表达式,#这个的意思是以key函数的顺序排序,也就是先紧着第二个的顺序排序,然后是第三个,第一个重要性最低。注意的是,原列表中的元素顺序不变
    result = ''
    for i in xrange(L):
        if s[i].isalpha():
            result += b[0][0]
            del b[0]    #删除这个元素,后边的元素依次往前进1
        else:
            result += s[i]
    return result
      
try:
    while 1:
        print f(raw_input())
except:
    pass
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_42363032/article/details/111998099

智能推荐

Spring Boot (3) Configurations_"configurations\": [ { \"type\": \"spring-boot\", -程序员宅基地

文章浏览阅读561次。Spring Boot (3) ConfigurationsThis section describes the configurations in Spring Boot.1. Get configuration by ConfigurableApplicationContext objectapplication.properties# Common propertiesserver.por..._"configurations\": [ { \"type\": \"spring-boot\", \"name\": \"gatewayapplication\","

Android 12.0 SystemUI下拉状态栏定制化之隐藏下拉通知栏布局功能实现(二)_android12定制下拉快捷栏-程序员宅基地

文章浏览阅读606次。在12.0的系统定制化开发中,由于从12.0开始SystemUI下拉状态栏和11.0的变化比较大,所以可以说需要从新分析相关的SystemUI的布局,然后做分析来实现不同的功能,今天就开始实现关于隐藏SystemUI下拉状态栏中的通知栏布局系列二,去掉下拉状态栏中 通知栏部分白色的圆角背景_android12定制下拉快捷栏

原型和原型链详解_介绍下原型和原型链?-程序员宅基地

文章浏览阅读5.8k次,点赞11次,收藏44次。原型和原型链怎么来的?1994年,网景公司(Netscape)发布了Navigator浏览器0.9版,但是刚开始的Js没有继承机制,更别提像同时期兴盛的C++和Java这样拥有面向对象的概念。在实际的开发过程中,构造函数内部的属性方法,每次new一个实例对象的时候,都会创建内部的这些属性和方法,并且不同的实例对象之间,不能共享这些方法,造成了资源的浪费。工程师们发现没有继承机制很难解决一些问题,必须有一种机制能将所有的对象关联起来。于是有了原型这个概念。Brendan Eich鉴于以上情况,但不想把_介绍下原型和原型链?

数据结构与算法--递归(factorial)_factorial在c语言中有什么用-程序员宅基地

文章浏览阅读2.2k次。计算阶乘的递归代码如下:#include <stdio.h>#define FUNCTION_TRUE 1#define FUNCTION_FALSE 0void print_loop(void);long factorial(int n);long iterative_factorial(int n);int main(void){ int a = 3; long result = 0; //print_loop();#if FUNC..._factorial在c语言中有什么用

Linux学习必备基础知识_链接程序,共同完成任务-程序员宅基地

文章浏览阅读255次。1. 计算机的功能及组成_链接程序,共同完成任务

Java并发编程实例--4.控制线程打断_如何打断等待的线程-程序员宅基地

文章浏览阅读664次。Java提供了InterruptedException异常,当我们检测到线程被打断时可以抛出并在run()方法中进行捕捉。本例中,我们将开发一个程序以实现根据文件名称在指定文件夹(包括其子目录)中搜索它。以此来介绍如何使用InterruptedException异常。FileSearch.java package com.dylan.thread.ch1.c04;import java...._如何打断等待的线程

随便推点

八万多个区块链项目中仅有8%存活-程序员宅基地

文章浏览阅读365次。点击上方“蓝色字”可关注我们!暴走时评:德勤“区块链技术演变:Github平台内观”分析报告发现,尽管区块链及其衍生项目数量疯狂增加,可是极少数项目能够存活。仅仅通过开源平台Github发起的项目数量就很惊人,而且机构发起的项目比个人发起的项目存活率高。作者:C. Edward Kelso 翻译:Annie_Xu_8%区块链项目存活

pytorch:RuntimeError: CUDA error: CUBLAS_STATUS_ALLOC_FAILED when calling `cublasCreate(handle)`_pytorch cublas_status_alloc_failed when calling `c-程序员宅基地

文章浏览阅读2.9w次,点赞19次,收藏16次。pytorch出现报错:RuntimeError: CUDA error: CUBLAS_STATUS_ALLOC_FAILED when calling cublasCreate(handle)将batch_size改小一点即可我之前的batch_size = 32,改为batch_size = 8程序跑成功了。出现上述问题的原因:1.网络过于复杂(深)2.电脑性能不行..._pytorch cublas_status_alloc_failed when calling `cublascreate(handle)

scala中的特质_scala success特质-程序员宅基地

文章浏览阅读2k次。scala中的特质1.特质中定义的方法可以实现,【有了大括号的就是已经实现过的方法,例如下面Animal中的listen和run】;也可以不实现【例如Animal类中的speak方法】示例代码如下:package cookBook.chapter8trait Animal{ //没有实现 def speak def listen: Unit ={ } ..._scala success特质

SQL语句练习题目-程序员宅基地

文章浏览阅读875次。sql语句练习题目员工信息表 staff: user_id , name, store_id, salary商店表store:store_id, name,city题目1:找出平均工资小于5000的商店所在的城市SELECT a.ctity,AVG(b.salary) FROM store a,staff bWHERE a.store_id=b.store_idG...

HTML期末作业:基于html+css+javascript+jquery实现古诗词网页 学生网页设计作品 web前端开发技术 web课程设计 网页规划与设计-程序员宅基地

文章浏览阅读198次。 关于作者: 历任研发工程师,技术组长,教学总监;曾于2016年、2020年两度荣获CSDN年度十大博客之星。 十载寒冰,难凉热血;多年过去,历经变迁,物是人非。 然而,对于技术的探索和追求从未停歇。 坚持原创,热衷分享,初心未改,继往开来!茶文化网站、️‍中华传统文化题材、京剧文化水墨风书画、中国民间年画文化艺术网站 、等网站的设计与制作。️ 这个首页代码运用了DIV盒子的使用方法,如盒子的嵌套、浮动、margin、border、background等属性的使用,外部大盒

图像直方图均衡化和局部增强处理_基于直方图的局部增强-程序员宅基地

文章浏览阅读1.9w次,点赞15次,收藏123次。一、基本原理1.1直方图均衡化(一提高图像的对比度,二使像素值几乎成均匀分布的图像0表示黑,1表示白,中心思想是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布,增加许多图像的局部对比度,亮度可以更好的在直方图上分布。) 灰度级的直方图就是反映一幅图像中的灰度级与出现这种灰度的概率之间的关系的图形。设变量代表图像中的像素灰度级。在图像中,像素的灰度级可作归一化处理..._基于直方图的局部增强

推荐文章

热门文章

相关标签