【华为OD机试题】字符串消消乐
题目
字符串消消乐。相邻且相同的字符串可以消除,消除后字符继续消除,给你一串字符,给出最终的长度。字符串大小写敏感,有其他非字母字符返回0。
例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。
之后我们得到字符串 "aaca",其中又只有 "aa" 可以执行重复项删除操作,所以最后的字符串为 "ca"。
考擦知识点
主要考察的是递归算法
解题思路
使用递归算法,替换函数
实现代码
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# 定义一个方法
def clearSameStr(str):
# 遍历字符移除相邻相同字符
temp=''
newStr=str
for char in str:
if char==temp:
newStr=newStr.replace(temp+char,'')
temp=''
clearSameStr(newStr)
else:
temp=char
# 判断新字符串是否还有相邻相同字母
temp=''
is_same=False
for char in str:
if char==temp:
is_same=True
break
else:
temp=char
if is_same:
return clearSameStr(newStr)
else:
return newStr
target_str='abbaca'
out_str=clearSameStr(target_str)
print(f'{out_str}')

相关推荐
华为OD和力扣刷题记录库
前端写算法使用编程语言是 JavaScript 或者 TypeScript,我个人更倾向于推荐使用 TypeScript。 当然你可以先写一遍 JavaScript,再尝试着转换为 TypeScript。 为什么呢?以前是个人的一些见解 TypeScript 能帮助 JavaScript 开发者去适应静态数据类型的检查,避免数据类型使用不当导致程序出错 TypeScript 静态数据类型能方便编辑器提示对应数据类型的 API 调用 学习灵活使用 TypeScript,TypeScript 已经是前端主流的开发语言 代码转换为其他类型的编程语言时也非常方便 数据结构与算法知识点 数据结构 链表 栈 队列 二叉树 图 算法
华为OD机试题 - 字母消消乐(JavaScript)
字母消消乐 题目 游戏规则: 输入一个只包含英文字母的字符串, 字符串中的两个字母如果相邻且相同,就可以消除。 在字符串上反复执行消除的动作, 直到无法继续消除为止,此时游戏结束。 输出最终得到的字符串长度。 输入 输入原始字符串str 只能包含大小写英文字母,字母的大小写敏感, str长度不超过100
【华为OD机试真题 Python】消消乐游戏
游戏规则: 输入一个只包含英文字母的字符串,字符串中的两个字母如果相邻且相同,就可以消除。 在字符串上反复执行消除的动作,直到无法继续消除为止,此时游戏结束。 输出最终得到的字符串长度。
【新2023Q2押题JAVA】华为OD机试 - 字母消消乐
本篇题解:字母消消乐 题目 游戏规则: 输入一个只包含英文字母的字符串, 字符串中的两个字母如果相邻且相同,就可以消除。 在字符串上反复执行消除的动作, 直到无法继续消除为止,此时游戏结束。 输出最终得到的字符串长度。
华为OD机试Golang解题 - 字母消消乐
如果想要在华为od机试中获取高分,一定要不要完全背诵代码,需要理解之后模仿写出,分数才会高。字符串中的两个字母如果相邻且相同,就可以消除。只能包含大小写英文字母,字母的大小写敏感,此时没有相同且相邻的字符 无法继续消除。直到无法继续消除为止,此时游戏结束。输出游戏结束后,最终得到的字符串长度。输入一个只包含英文字母的字符串,👍 阅读完毕,可以点点小手赞一下。在字符串上反复执行消除的动作,可以直接消除,得到空串,长度为。输入中包含非大小写英文字母时。输出最终得到的字符串长度。


