华为OD机试E卷 –字符串化繁为简 –24年OD统一考试(Java & JS & Python & C & C++)

文章目录

  • 题目描述
  • 输入描述
  • 输出描述
  • 用例
  • 题目解析
  • JS算法源码
  • Java算法源码
  • python算法源码
  • c++算法源码
  • 题目描述

    给定一个输入字符串,字符串只可能由英文字母(a z、AZ)和左右小括号(、)组成当字符里存在小括号时,小括号是成对的,可以有一个或多个小括号对,小括号对不会嵌套,小括号对内可以包含1个或多个英文字母也可以不包含英文字母。当小括号对内包含多个英文字母时,这些字母之间是相互等效的关系,而且等效关系可以在不同的小括号对之间传递,即当存在a和b等效和存在b和c等效时,a和c也等效,另外,同一个英文字母的大写字和小写字母也相互等效(即使它们分布在不同的括号对里)
    要对这个输入字符串做简化,输出一个新的字符串,输出字符串里只需保留输入字符串里的没有被小括号对包含的字符(按照输入字符串里的字符顺序),并将每个字符替换为在小括号对里包含的目字典序最小的等效字符。如果简化后的字符串为空,请输出为”0″

    示例
    输入字符串为”never(dont)live(run)up()”,初始等效字符集合为(d,o,n,t)、r,u,n),由于等效关系可以传递,因此最终等效字符集合为(d,o,n,t,r,u),将输入字符串里的剩余部分按字典序最小的等效字符替换后得到”devedgivedp

    输入描述

    input string
    输入为1行,代表输入字符串

    作者:飞码创造者

    物联沃分享整理
    物联沃-IOTWORD物联网 » 华为OD机试E卷 –字符串化繁为简 –24年OD统一考试(Java & JS & Python & C & C++)

    发表回复