首页 > 试题广场 >

删除重复字符

[编程题]删除重复字符
  • 热度指数:15863 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
牛牛有一个由小写字母组成的字符串s,在s中可能有一些字母重复出现。比如在"banana"中,字母'a'和字母'n'分别出现了三次和两次。
但是牛牛不喜欢重复。对于同一个字母,他只想保留第一次出现并删除掉后面出现的字母。请帮助牛牛完成对s的操作。

输入描述:
输入包括一个字符串s,s的长度length(1 ≤ length ≤ 1000),s中的每个字符都是小写的英文字母('a' - 'z')


输出描述:
输出一个字符串,表示满足牛牛要求的字符串
示例1

输入

banana

输出

ban
string=input()
array=[]
for i in range(len(string)):
    if string[i] not in array:
        array.append(string[i])
print(''.join(array))


发表于 2019-09-07 12:25:11 回复(0)
array=input()
s=list(set(list(map(str,array))))
s.sort(key=array.index) print(''.join(str(i) for i in s))
发表于 2019-08-14 22:15:08 回复(0)
不解释,Python大法好!

def fun(string):
    charlist = []
    for char in string:
        if char not in charlist:
            charlist.append()
    return ''.join(charlist)
string = input()
print(fun(string))
发表于 2019-08-11 18:03:08 回复(0)
python3.将字符串利用set删除重复元素,然后转换为list进行排序,并保持相对顺序
a = input()
b = list(set(a))
b.sort(key = a.index)
print(''.join(b))

发表于 2019-06-12 15:29:19 回复(0)
s = list(input())
new = []
for i in s:
    if i in new:
        del i
    else:
        new.append(i)
print(''.join(new))

编辑于 2019-05-21 21:13:16 回复(0)
while True:
    try:
        str_ = raw_input()
        out=''
        for i in str_:
            if i not in out:
                out+=i
        print(out)
    except:
        break
编辑于 2019-05-08 11:12:12 回复(0)
s = list(input())
dic = {}
temp = []
for i in range(len(s)):
    if s[i] not in dic.keys():
        dic[s[i]] = 1
        temp.append(s[i])
print(''.join(temp))

发表于 2019-04-04 11:05:43 回复(0)

o =''
for item in input():
    if item not in o:
        o += item
print(o)

发表于 2019-03-28 23:59:57 回复(0)
s = list(input())
index = []

for i in range(len(s)):
    num = s.count(s[i])
    if num > 1:
        s_index = s.index(s[i])
        for j in range(num-1):
            s_index = s.index(s[i],s_index+1)
            index.append(s_index)
            
index = list(set(index))
index.sort()
#print(index)
new_s = s[: index[0]]
for i in range(len(index)-1):
    new_s += s[index[i]+1: index[i+1]]
if index[len(index)-1] < len(s):
    new_s += s[index[-1]+1:]
print("".join(new_s))

发表于 2019-03-19 00:16:48 回复(0)
##Python

s=input()
s2=list(set(s))        #去掉重复元素后的列表
s2.sort(key=s.index)   #对s2的元素按照原来的顺序排序
print(''.join(s2))

编辑于 2019-03-17 21:29:42 回复(0)
s = input()
existed = set()
s_out = ""
for char in s:
    if char not in existed:
        existed.add(char)
        s_out += char
    if len(s_out) == 26:
        break
print(s_out)

发表于 2019-03-04 23:32:42 回复(0)

python3 解法

使用集合来保存已经出现过的字母。

string_set, res = set(), ""
for char in input():
    if char not in string_set:
        string_set.add(char)
        res += char
print(res)
发表于 2019-02-24 15:16:36 回复(0)
s = raw_input()
res = ''
for string in s :
    if string not in res :
        res = res + string
print(res)

发表于 2019-02-15 17:47:28 回复(0)
# coding=utf-8

def fun():
    s = raw_input()
    alphabet_hash = [0]*26
    result = ''
    for i in range(len(s)):
        if alphabet_hash[ord(s[i])-ord('a')]==0:
            alphabet_hash[ord(s[i])-ord('a')]=1
            result = result + s[i]
    return result

if __name__=='__main__':
    print(fun())

编辑于 2019-01-30 10:13:03 回复(0)
python3在此
法1:
a=list(input().lower())
b = []
for i in a:
    if i not in b:
        b.append(i)
print("".join(b))
发表于 2017-12-01 23:17:05 回复(1)