当前位置: 首页 > wzjs >正文

discuz网站搬家教程宁波北仑装修公司排行

discuz网站搬家教程,宁波北仑装修公司排行,有什么网站可以做推广,房地产开发商是干什么的问题描述: 给定一个输入字符串,字符串只可能由英文字母(a~z、A~Z) 和左右小括号((、))组成。当字符串里存在小括号时,小括号是成对的,可以有一个或多个小括号对,小括号对不会嵌套,小括号对内可以包含1个或…

问题描述:

给定一个输入字符串,字符串只可能由英文字母('a'~'z'、'A'~'Z') 和左右小括号('('、')')组成。当字符串里存在小括号时,小括号是成对的,可以有一个或多个小括号对,小括号对不会嵌套,小括号对内可以包含1个或多个英文字母,也可以不包含英文字母。当小括号对内包含多个英文字母时,这些字母之间是相互等效的关系,而且等效关系可以在不同的小括号对之间传递,即当存在'a'和'b'等效和存在'b'和'c'等效时,'a'和'c'也等效,另外,同一个英文字母的大写字母和小写字母也相互等效(即使它们分布在不同的括号对里)

需要对这个输入字符串做简化,输出一个新的字符串,
输出字符串里只需保留输入字符串里的没有被小括号对包含的字符(按照输入字符串里的字符顺序),并将每个字符替换为在小括号对里包含的且字典序最小的等效字符。
如果简化后的字符串为空,请输出为"0"。
示例:
输入字符串为"never(dont)give(run)up(f)()",初始等效字符集合为('d'. 'o'. 'n'. 't')、 ('r'. 'u','n'),由于等效关系可以传递,因此最终等效字符集合为('d', 'o', 'n', 't', 'r', 'u'),将输入字符串里的剩余部分按字典序最小的等效字符替换后得到"devedgivedp"
输入描述
input_string
输入为1行,代表输入字符串
输出描述
output_string
输出为1行,代表输出字符串
补充说明
输入字符串的长度在1~100000之间

()happy(xyz)new(wxy)year(t)
happwnewwear
#说明:等效字符集为('x’, 'y','z’,'w'),输入字符串里没有被小括号包含的子字符串集合为"happynewyear",将其中字符替换为字典序最小的等效字符后输出为:"happwnewwear"
()abcdefgAC(a)(Ab)(C)
AAcdefgAC
#说明:等效字符集为('a', 'A', 'b'),输入字符串里没有被小括号包含的子字符串集合为"abcdefgAC",将其中字符替换为字典序最小的等效字符后输出为:“AAcdefgAC"

解题思路:

根据规则:

  1. 小括号内多个英文字母,这几个英文字母等效
  2. 多个小括号内英文字母的等效关系可以传递
  3. 同一个英文字母的大小写等效

情况判断:

进入小括号内部:

  1. 使用一个set()集合记录等效字母集
  2. 多个英文字母:直接将这几个英文字母加入集合
  3. 一个英文字母:先将这个英文字母加入另一个set()集合,待字符串处理完成时,判断该字母对应的大(小)写字母是否存在于第一个set()集合中,是则加入第一个set()。

或者在小括号外部:

  1. 使用一个list记录不在小括号内的字母
  2. 将等效字母集排序,取第一个(或者set()为空,则是空)
  3. 遍历list,若当前字母在set()中,将当前字母替换为最小等效字母

代码实现:

s = list(input())
s1 = set()#记录小括号内多个英文字母
s2 = set()#记录小括号内单个英文字母
ans = []
i = 0
#处理字符串
while i < len(s):if s[i] == '(':#进入小括号内部i += 1right = iwhile s[right] != ')':right += 1if right-i > 1:#多个for i in range(i,right):s1.add(s[i])elif right-i == 1:#单个s2.add(s[i])i = right+1else:#小括号外部while i < len(s) and s[i] != '(':ans.append(s[i])i += 1  if i == len(s):break
#判断s2中对应的字母大小写是否在s1中
for x in list(s2):if 'a' <= x <= 'z' and x.upper() in s1:s1.add(x)elif 'A' <= x <= 'Z' and x.lower() in s1:s1.add(x)   
k = ''#最小等效字母
s1 = sorted(s1)
if s1:k = s1[0]
for i in range(len(ans)):if ans[i] in s1:ans[i] = k#替换
print(''.join(ans))

http://www.dtcms.com/wzjs/797087.html

相关文章:

  • 做网站开发的薪酬怎么样网站建设从零开始教程
  • 河南省住房和城乡建设厅门户网站织梦手机网站教程
  • 手机做网站的软件可以免费发广告的app
  • 安装网站程序要给那个目录设置权限关于网站建设的问卷调查
  • 电子商务网站项目计划wordpress留白
  • 东莞松山湖招聘网站优化报价单
  • 网站建设比较好的手机网站建设文章
  • 深圳微商城网站设计电话wordpress 适合做什么网站
  • 医药网站建设需要注意点dw新建站点
  • 上海市网站建设公叿品牌推广总监
  • 关于干外贸的一些好的学习网站龙岩天宫山攻略
  • 做一个网站需要哪些资源网页模板简单
  • 网站建设色彩合肥的网站建设
  • 江西宜春市建设局网站上国外网站的dns
  • 义乌网站建设多少钱网站建设过程中服务器的搭建方式
  • 自己买服务器可以搭建网站吗用户界面设计原则
  • 万网速成网站有哪些 功能济南市个人网站制作
  • 潍坊网站建设推广公司王战营
  • 中国质量建设协会网站wordpress使用步骤
  • 网站建设河北石家庄做网站的开发工具
  • 网站如何安装源码h5制作公司
  • 网站悬浮窗广告怎么做东莞专业设计网站
  • 微商城手机网站设计谷歌怎么做网站优化
  • 做调研的网站有哪些北京网站推广机构
  • 网站后台密码错误浏览器广告投放
  • 怎样做网络推广平台什么是优化资源配置
  • 西湖专业网站设计公司网页毕业设计作品
  • 东莞网站制作建设公司企业大型网站开发设计建站流程
  • 手机端网站开发建设内容wordpress 清爽主题
  • 烟台seo网站诊断文山app开发定制