输入一个字符串,将字符串中仅出现两次的字符全部删除
时间: 2023-05-28 20:02:00 浏览: 46
以下是Python代码实现:
```python
s = input() # 输入字符串
count = {} # 用一个字典记录每个字符出现的次数
for c in s:
count[c] = count.get(c, 0) + 1 # 如果是第一次出现,则设为1,否则加1
for c in s:
if count[c] > 2: # 字符出现次数大于2,不删除
print(c, end='')
elif count[c] == 2: # 字符出现次数等于2,删除
count[c] = -1 # 标记为已删除
elif count[c] == 1 and count[c] != -1: # 如果只出现一次但没有被删除,则保留
print(c, end='')
```
例如,输入字符串 `"abbcddeefggh"`,输出为 `"abcdegg"`。
相关问题
输入一个字符串,删除其中出现两次的字符
这道题有点模糊,是删除所有出现两次及以上的字符还是仅删除两次的字符呢?下面提供两种方法,可根据实际情况选择:
方法一:删除所有出现两次及以上的字符
思路:遍历字符串,使用字典记录每个字符出现的次数,最后删除出现次数大于等于2的字符。
实现代码:
```python
def remove_duplicate_chars(s):
count = {}
for c in s:
if c in count:
count[c] += 1
else:
count[c] = 1
new_s = ""
for c in s:
if count[c] < 2:
new_s += c
return new_s
```
测试:
```python
s = "aabbcdeeffgg"
print(remove_duplicate_chars(s)) # "cdef"
```
方法二:删除仅出现两次的字符
思路:遍历字符串,记录每个字符出现的位置,最后删除出现次数为2且位置相同的字符。
实现代码:
```python
def remove_duplicate_chars(s):
count = {}
positions = {}
for i, c in enumerate(s):
if c in count:
count[c] += 1
positions[c].append(i)
else:
count[c] = 1
positions[c] = [i]
new_s = ""
for c, cnt in count.items():
if cnt != 2: # 出现次数不为2的字符直接加入新字符串
new_s += c
else: # 出现次数为2的字符需要判断位置
if positions[c][0] != positions[c][1]:
new_s += c
return new_s
```
测试:
```python
s = "aabbcdeeffgg"
print(remove_duplicate_chars(s)) # "abcdeffgg"
```
python从键盘中输入一句英文字符串删除字符串中只出现两次的字符
可以按照以下步骤进行:
1. 从键盘中读入一句英文字符串,可以使用`input()`函数获取输入。
2. 遍历字符串中的每个字符,统计每个字符出现的次数,可以使用字典来存储每个字符对应的出现次数。
3. 遍历字典,删除出现次数为2的字符,可以使用 `del`语句从字典中删除某个键值对。
4. 构建一个新的字符串,将剩余的字符依次添加到新字符串中。
5. 输出新字符串即可。
下面是完整的代码实现:
```python
# 从键盘中读入一句英文字符串
s = input('请输入一句英文字符串:')
# 统计每个字符出现的次数
count = {}
for c in s:
if c in count:
count[c] += 1
else:
count[c] = 1
# 删除出现次数为2的字符
for c in list(count.keys()):
if count[c] == 2:
del count[c]
# 构建一个新的字符串
new_s = ''
for c in s:
if c in count:
new_s += c
# 输出新字符串
print('删除只出现两次的字符后的字符串为:', new_s)
```
注意,这里应该使用 `list(count.keys())`来遍历字典的键值,因为在遍历的过程中可能会删掉某些键值对,如果不使用list()将字典的键值转为列表,则会发生运行时错误。