华为机试第一题[2016年8月18日上午]计算重复字符
来源:互联网 发布:夏俊峰案网络舆论 编辑:程序博客网 时间:2024/05/19 09:37
题目描述
输入一行字符,统计英文字母的个数,非英文字母直接掠过不统计
例如:输入:AAA^^^%ABBCd98n2
输出:A4B2C1d1n1
首先我想说的是,草,自己的代码能力真渣!!!!!回来后自己写的,唉
其实这道题不难的,今天去华为,看到这个题后,觉得挺简单的,不一会就写好了,后来测试的时候却没有输出最后面的结果
通过这次面试我懂得了几个道理
1.一定要多练代码
2.一定给自己很大的压力,在这样下去,工作找不到了!
3.说说这道题的几个注意的地方
1.首先是判定第一个字符,因为上来不可能总是给你范围内的,万一是范围外的呢
2.核心思想是,引用current一直往前遍历,引用pre记录上一次记录的英文字母,注意,我们在遍历的时候会过滤到非英文字符,
特别是最后的时候,把pre加入到buffer里面,而不是current,因为current已经跳出循环了,不能保证此时的current
还是英文字母了
下面给出所有情况的测试用例
##2ww3wNNiL11 输出 w3N2i1L1
2ww3wNNiLL 输出 w3N2i1L2
ww3wNNiL1 输出 w3N2i1L1
import java.util.Scanner;public class StringSplit { public static void main(String[] args){ Scanner input = new Scanner(System.in); StringBuffer sb = new StringBuffer(); while(input.hasNext()){ String line = input.nextLine(); sb = new StringBuffer(); int j=0; int count=1; char pre = line.charAt(j); while(j<line.length()){ pre = line.charAt(j); if(pre>='a'&&pre<='z'||pre>='A'&&pre<='Z'){ break; }else{ j++; } } //从1号位置开始对字符串进行遍历, for(int i=j+1;i<line.length();i++){ char current = line.charAt(i); if(current>='a'&¤t<='z'||current>='A'&¤t<='Z'){ if(current==pre){ count++; }else{ sb.append(pre).append(count); count=1; pre = current; } } } sb.append(pre).append(count); System.out.println(sb.toString()); } }}
0 0
- 华为机试第一题[2016年8月18日上午]计算重复字符
- 华为机试整理[2014年8月15日上午机试准备]
- 计算重复字符个数_华为SO挑战赛试题2015年8月
- 2016年10月22日上午图片加载
- 华为9月14日上机考试题(第一题)
- 2011年06月21日上午
- 2014年12月11日上午
- 2014年6月6日--华为机试
- 华为机试 计算字符个数
- 华为机试,计算字符的个数
- 【华为机试】计算字符个数
- 华为在线机试-计算字符个数
- 面试经历---广东耶萨智能科技股份有限公司(2016年01月11日上午面试)
- 面试经历---S&G(2016年02月27日上午面试)
- 2007年2月26日上午的学习
- 2013年6月17日上午10时许
- 华为机试——重复字符过滤(stringFilter)
- 20150915华为软件笔试--计算重复字符个数
- android开发步步为营之110:android反编译apk
- 《TCP/IP详解 卷1:协议》 读书笔记 第11章 UDP:用户数据报协议
- 数据结构——18 二叉树(非递归)
- Java函数的基础介绍
- 排序算法
- 华为机试第一题[2016年8月18日上午]计算重复字符
- EventBus详解
- iOS中集成ijkplayer视频直播框架
- busybox login: root Login incorrect
- xctool的使用
- Android 内存管理 &Memory Leak & OOM 分析
- 如何判断字符串包含的是数字
- (常用file类练习)递归打印文件目录
- BigDecimal运算