学习目标:算法学习-Day7
题库: 洛谷题库
每天保持发布一篇Java或C算法题解!
题目:
题目一样也能和别人高度相似?吐了
题目:https://www.luogu.com.cn/problem/CF5A
样例 1 :
输入:
+Mike
Mike:hello
+Kate
+Dmitry
-Dmitry
Kate:hi
-Kate
输出:
9
样例 2 :
输入:
+Mike
-Mike
+Mike
Mike:Hi I am here
-Mike
+Kate
-Kate
输出:
14
思路:
输出的是流量
流量 = 人数 * 字符串长度
三个关键点:
1.判断是否以“+”开头
若是,人数+1
2.判断是否以“-”开头
若是,人数-1
3.循环判断每一行字符串是否含有“:”
习题总结及反思:
抓住题目的关键点: + ,- , 字符串
CF又挖坑了:
特别注意样例2中的Mike说的话中Hi与I之间是间隔三个空格,而am和here之间是间隔1个空格,
如此才能得到14这个答案
还有
循环输入时,要注意Scanner方法的next()和nextLine()的区别
nextLine():
nextLine()方法字面上有扫描一整行的意思,它的结束符只能是Enter键,
即nextLine()方法返回的是Enter键之前没有被读取的所有字符,它是可以得到带空格的字符串的。
next():
next()方法在读取内容时,会过滤掉有效字符前面的无效字符,
对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,
next()方法会自动将其过滤掉;只有在读取到有效字符之后,next()方法才将其后的空格键、Tab键或Enter键等视为结束符;
所以next()方法不能得到带空格的字符串。
</