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

信息平台怎么赚钱seo整站优化一年价格多少

信息平台怎么赚钱,seo整站优化一年价格多少,.net cms网站管理系统,建网站岑溪哪家强?题目 给定一个输入字符串,字符串只可能由英文字母(a ~ z、A ~ Z)和左右小括号()组成。当字符里存在小括号时,小括号是成对的,可以有一个或多个小括号对,小括号对不会嵌套,小括号对内可以包含1个或多个英文字母也可以不…

题目

给定一个输入字符串,字符串只可能由英文字母(a ~ z、A ~ Z)和左右小括号()组成。当字符里存在小括号时,小括号是成对的,可以有一个或多个小括号对,小括号对不会嵌套,小括号对内可以包含1个或多个英文字母也可以不包含英文字母。当小括号对内包含多个英文字母时,这些字母之间是相互等效的关系,而且等效关系可以在不同的小括号对之间传递,即当存在a和b等效和存在b和c等效时,a和c 也等效,另外,同一个英文字母的大写字和小写字母也相互等效(即使它们分布在不同的括号对里)。
要对这个输入字符串做简化,输出一个新的字符串,输出字符串里只需保留输入字符串里的没有被小括号对包含的字符(按照输入字符串里的字符顺序),并将每个字符替换为在小括号对里包含的字典序最小的等效字符。如果简化后的字符串为空,请输出为"0"
示例:输入字符串为"never(dont)live(run)up(f)()“,初始等效字符集合为(d,o,n,t,r,u,n),由于等效关系可以传递,因此最终等效字符集合为(d,n,o,r,t,u),将输入字符串里的剩余部分按字典序最小的等效字符替换后得到"devedlivedp”
输入描述
input string
输入为1行,代表输入字符串
输出描述
output string
输出为1行,代表输出字符串
备注
输入字符串的长度在1~100000之间
示例1:
输入∶
()abd
输出:
abd
说明:
输入字符串里没有被小括号包含的字符串为"abd",其中每个字符没有等效字符,输出为"abd"
示例2:
输入∶
(abd)demand(fb)()for
输出:
aemanaaor
说明:
等效字符集为(a,b,d, f),输入字符串里没有被小括号包含的字符串集合为demandfor”,将其中字符替换为字典序最小的等效字符后输出为:“aemanaaor”
示例3:
输入∶
happy(xyz)new(wxy)year(t)
输出:
happwnewwear
说明:
等效字符集为(w,x,y,z),输入字符串里没有被小括号包含的字符串集合为"happynewyear”,将其中字符替换为字典序最小的等效字等后输出为:“happwnewwear”

思路

比如输入的字符串为:NeVeD(dont)Live(Drun)up(f)()
按照题意:
先提取小括号(括号内字符数大于1)里的字符:dontDrun,去重后为,dDontru。由于大小写是等效的,所以这里如果转为全小写并去重排序后的结果为:dnortu。于是现在需要将原来字符串中的d,n,o,r,t,u,全部转为d。得到字符串:deVedLivedp
但是当我们全转为大写时,将原来字符串中的d,n,o,r,t,u,全部转为D,得到结果:DeVeDLiveDp
题目应该是对输出字符串是忽略大小写的,否则按照不同方式处理会得到不同的结果。
解题思路如下:

  1. 首先提取小括号内的字符放入set中去重,小括号内字符个数大于1时才放入set
  2. 将其他字符(非小括号内的字符)组成新字符串:newStr
  3. 对set中的字符按照字典序排序,并转为字符数组:chars
  4. 对newStr中遍历,当某个字符出现在chars中时,将它替换为chars[0]
  5. 最后输出newStr即可

关键在于第1、2步,即将输入字符串分离为括号内字符和括号外字符两部分
我们可以使用栈stack来实现,使用sb(StringBuilder)存放括号外的字符,使用set存放括号内的字符,将输入字符串转为chars数组,遍历chars:

  1. 如果stack为空时,说明没有出现括号,直接把字符加入sb
  2. 如果stack不为空或者字符串为(时,说明已经出现了括号,或者第一次出现括号,直接把字符加入stack
  3. 如果遇到 ),代表一对括号结束,应该清除stack。并且还需要根据括号对中的字符数量判断是否加入set中。怎么判断数量?此时stack中的字符为:(、若干字符(stack.size-1),如果字符数量大于1,那么应该将stack中除最后一个(外的字符加入set。

最后考虑特殊情况,比如按照括号对分离后sb为空,直接输出0,set为空,则直接输出sb.toString()

题解

package hwod;import java.util.*;public class StringSimplifying {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String str = sc.nextLine();System.out.println(stringSimplifying(str));}private static String stringSimplifying(String str) {Set<Character> set = new HashSet<>();//存储括号内的字符StringBuilder sb = new StringBuilder();//存储括号外的字符LinkedList<Character> queue = new LinkedList<>();for (int i = 0; i < str.length(); i++) {if (str.charAt(i) == ')') {if (queue.size() - 1 > 1) {while (queue.size() > 1) {set.add(Character.toLowerCase(queue.pollLast()));//大小写等效,全转为小写}}queue.clear();continue;}if (str.charAt(i) == '(' || !queue.isEmpty()) {queue.addLast(str.charAt(i));continue;}sb.append(str.charAt(i));}if (sb.length() == 0) {return "0";}if (set.size() == 0) {return sb.toString();}ArrayList<Character> chars = new ArrayList<>(set);Collections.sort(chars);final char[] newChars = sb.toString().toCharArray();for (int i = 0; i < newChars.length; i++) {if (chars.contains(Character.toLowerCase(newChars[i]))) {newChars[i] = chars.get(0);}}return String.valueOf(newChars);}
}

推荐

如果你对本系列的其他题目感兴趣,可以参考华为OD机试真题及题解(JAVA),查看当前专栏更新的所有题目。

http://www.15wanjia.com/news/17064.html

相关文章:

  • 深圳网站定制公司旅游景区网络营销案例
  • wordpress微信分享图片seo网络推广公司报价
  • 网站大数据怎么做的企业营销模式
  • 那些企业网站做的漂亮优化设计三年级下册数学答案
  • 龙华做网站的微信视频号小店
  • 怎么自己做网站挣钱有没有免费的seo网站
  • 网站制作的目的全网营销公司
  • 兰州专业做网站的公司哪家好营销型网站建设题库
  • 湖南株洲静默北京seo分析
  • 推荐几个好看的网站海口网站关键词优化
  • 化妆品行业的网站开发句容市网站seo优化排名
  • 购物网站的后台做哪些东西百度网盟推广怎么做
  • 网站建设和赚钱方法淘宝一个关键词要刷多久
  • 造价人员做兼职的网站百度站长平台
  • 合肥市建设工程信息价网站三个关键词介绍自己
  • 澳门网站开发招聘百度官方推广平台
  • 长沙做网站设计的公司seo网络营销外包公司
  • 网站建设谢词网页设计与制作教程
  • 深圳宝安做网站的seo是什么意思怎么解决
  • 做物流的网站都有什么作用广告seo是什么意思
  • 做网站需要学会些什么站长工具权重
  • 做网站搜索推广点击率太低怎么办如何解决网站只收录首页的一些办法
  • 房地产楼盘微信网站建设营销方案seo优化教程培训
  • 卖产品的网站怎么做南宁市优化网站公司
  • 哪个网站可以做英语语法题网络营销工具
  • 网站除了做流量还需要什么软件发布广告的平台免费
  • 做门户网站的公司有网站模板怎么建站
  • 网站建设费用上海关键词排名点击软件
  • 广州的一起做网站怎么样百度指数功能模块有哪些
  • 河南省豫建设计院网站合肥seo优化