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

河南安阳市滑县石家庄seo网站管理

河南安阳市滑县,石家庄seo网站管理,做网站前需要准备什么软件,八年级做网站题目 给定一个字符串的摘要算法,请输出给定字符串的摘要值 1、去除字符串中非字母的符号 2、如果出现连续字符(不区分大小写),则输出:该字符(小)+连续出现的次数 3、如果是非连续的宁符(不区分大小写),则输出:该字符(小写)该字母之…

题目

给定一个字符串的摘要算法,请输出给定字符串的摘要值
1、去除字符串中非字母的符号
2、如果出现连续字符(不区分大小写),则输出:该字符(小)+连续出现的次数
3、如果是非连续的宁符(不区分大小写),则输出:该字符(小写)该字母之后字符串中出现的该字符的次数
4、对按照以上方式表示后的字符串进行排序:字母和紧随的数字作为一组进行排序,数字大的在前,数字相同的则按字母进行排序,字母小的在前。
输入描述:
行字符串,长度为[1,200]
输出描述:
摘要字符串
示例1
输入:
aabbcc
输出:
a2b2c2
示例2
输入:
bAaAcBb
输出:
a3b2b2c0
说明:
第一个b非连续字母,该字母之后字符串中还出现了2次(最后的两个Bb),所以输出b2。a连续出现3次,输出a3,c非连续,该字母之后字符串再没有出现过c,输出c0,Bb连续2次,输出b2
对b2、a3、c0、b2进行排序,最终输出a3b2b2c0

思路

字符串处理的简单题,大致过程如下:
遍历字符串,利用Character.isAlphabetic©,过滤掉非字母符号
将字符串转为小写
遍历处理后的字符串,固定首位(i=0),判断i位置的字符是否为连续字符:
如果是连续字符,计算连续字符的个数,并将结果拼接为字符串(字符+连续次数)存入集合res中
如果是非连续字符,计算字符串后面出现该字符的次数,将结果拼接为字符串(字符+后面的子字符串出现该字符的次数),存入集合res中
最后对res排序即可(按出现次数从小到大)

题解

package hwod;import java.util.*;public class StringAbstract {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String input = sc.nextLine();System.out.println(stringAbstract(input));}private static String stringAbstract(String input) {StringBuilder sb = new StringBuilder();for (int i = 0; i < input.length(); i++) {if (Character.isAlphabetic(input.charAt(i))) {sb.append(input.charAt(i));}}String pureString = sb.toString().toLowerCase();char[] chars = pureString.toCharArray();List<String> res = new ArrayList<>();for (int i = 0; i < chars.length; i++) {if (i + 1 < chars.length && chars[i + 1] == chars[i]) {//连续字符int k = i + 1;while (k < chars.length && chars[k] == chars[i]) k++;res.add(String.valueOf(chars[i]) + (k - i));i = k - 1;} else {//非连续字符int cnt = getNum(pureString.substring(i + 1), chars[i]);res.add(String.valueOf(chars[i]) + cnt);}}res.sort((str1, str2) -> {int n1 = str1.charAt(1) - '0';int n2 = str2.charAt(1) - '0';if (n1 != n2) return n2 - n1;return str1.charAt(0) - str2.charAt(0);});sb = new StringBuilder();for (int i = 0; i < res.size(); i++) {sb.append(res.get(i));}return sb.toString();}private static int getNum(String str, char c) {if (str == null || str.length() == 0) return 0;int res = 0;for (int i = 0; i < str.length(); i++) {if (str.charAt(i) == c) res++;}return res;}
}

推荐

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

http://www.shuangfujiaoyu.com/news/63314.html

相关文章:

  • 有手机网站怎样做微信小程序百度账号客服24小时人工电话
  • 商丘建网站焦作整站优化
  • 网站源码是什么一键优化下载
  • 自己做流媒体网站难做了5天游戏推广被抓了
  • 珠海网站建设咨询关键词优化软件排行
  • 深圳微商城网站制作报价百度推广代理公司
  • 做电商一件代发的网站seo型网站
  • 绍兴做企业网站的公司推广引流的10个渠道
  • ps做图 游戏下载网站百度外推代发排名
  • 网站开发公司简介网站推广排名教程
  • 网站建设制作视频在线葡京在线葡京
  • 江西网站建设公司青岛百度网站排名
  • 头条号链接其他网站怎么做如何优化关键词
  • 完善网站建设的目的是软件怎么推广
  • 怎么用java做网站网站百度不收录
  • 做植物网站永久免费的培训学校管理软件
  • 网上怎么做网站优秀营销软文范例100字
  • 2008iis网站建设谷歌 chrome 浏览器
  • 奉化区建设局网站百度网盘搜索入口
  • 论坛网站建设费用自媒体推广平台
  • 重庆网站建设怎么样新手怎么入行sem
  • 福州外文网站建设seo百度seo排名优化软件
  • 游惠萍建盏简介优化设计六年级下册数学答案
  • 温州网站建设成功案例网络营销的专业知识
  • 大学关工委加强自身建设网站宣传网络营销案例成功案例
  • 什么网站做护工经典软文广告
  • 沟通交流型网站广告如何做百度关键词优化软件
  • 自动做任务赚钱的网站seo挂机赚钱
  • 做动效网站网络优化器下载
  • 简繁英3合1企业网站生成管理系统V1.6优化大师免费安装下载