首页 > 试题广场 >

字符串处理函数

[编程题]字符串处理函数
  • 热度指数:297 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
现有字符串char[] text,实现函数char[] drawChar(char[] text),找出text中重复出现最多的字符,然后将该字符移到text的最前端,生成一个新的字符串。 假设重复出现最多的字符只有一个。请充分考虑内存和性能效率。 举例: “abcaba”,转换后成为“aaabcb”。


输入描述:
输入原始的字符串,如 "abcaba"


输出描述:
输入处理后的字符串,如 "aaabcb"
示例1

输入

abcaba

输出

aaabcb
x =i nput()
l = list(x)
leng = 0
dif=list(set(l))
for ind,i in enumerate(dif):
    num = x.count(i)
    if num>leng:
        leng =num
        index =ind
print("".join(leng*[dif[index]]+list(x.replace(dif[index],'')))
编辑于 2019-06-28 23:27:57 回复(0)
# -*- coding: utf-8 -*- 
import sys 
import string 
def chartranslate():
     string0 = sys.stdin.readline()#输入
     list1=[]
     for i in string0:
         if i != '\n':
             list1.append(i)#转换成列表
     list2=list(set(list1))#转换成集合 (去重)
     count1=[]
     for j in list2:#将集合中的元素在输入数据中的个数存到count
         n=list1.count(j)
         count1.append(n) 
     m=count1.index(max(count1))#求count集合中最大值的索引  
     list3=[]   
     list4=[]  
     for k in list1:  
       if list2[m]==k:      
           list3.append(k)#输入字符串最多的重复元素        
       else:
           list4.append(k)#其他元素   
     list5=list3+list4 
     list6=''.join(list5)
     print list6 
    # print(str1)
if __name__=='__main__': 
    chartranslate()

编辑于 2018-12-18 18:57:40 回复(0)