目录

  • 题目大意
  • 解题思路:
  • 具体步骤
    • 1.变量的定义以及文本的基本处理
    • 2.字符串的遍历查找
    • 3.整合最终答案

题目大意

不论字母大小写的词频统计,要求统计给出单词(以下称为模板)在给出的文本(以下称为文本)中一共出现几次,以及该单词第一次出现的首字母位置,没有则返回-1。


解题思路:

首先,处理输入的文本,将字母都变成小写来遍历查找,并记录单词首字母的位置。我最先想到的是指针法,遍历文本,若是出现文本中有字母和模板的首字母相同,则开始后续的对比,若是相同且是首次出现则记录首字母位置,若是不同则模板指针重置为0,文本指针继续向前。

此处要注意可能出现的特殊情况,比如模板是单个字母,以及某个单词(funny—>fun)只有部分符合等情况,下文会进行详细解说。


具体步骤

1.变量的定义以及文本的基本处理

定义字符串model作为模板,lines作为文本。m为模板指针,l为文本指针,由于文本在遍历时指针会被赋值,而模板只有符合条件时才会开始遍历,所以给一个初始值0,temp作为首字母位置的记录,而sum是出现次数的统计。

此处有个小小ps:Java中next是指读取文本,而nextLine则是会读取包括空串的字符,以换行符作为结尾(并且读取),因此,这两个最好不好一起混用,否则会有跳行的现象,也就是说,要么全部next要么全部nextLine。

代码如下(示例):

public class P1308 {static String model,lines;static int m = 0,l,temp = -1,sum = 0;static boolean first = true;public static void main(String[] args) {Scanner sc = new Scanner(System.in);model = sc.nextLine();lines = sc.nextLine();sc.close();model = model.toLowerCase();lines = lines.toLowerCase();

2.字符串的遍历查找

l指针直接开始查找,第一个if条件详解:
l==0:应付第一个单词就是符合模板的情况。
lines.charAt(l-1) == ’ ':确保这是一个新的单词,不会出现上面所说的部分符合条件的情况(adfhs—>fh)。

第二个if条件详解:
应付首字母符合条件但是后面的字母不相符的情况,此处要将m重置。

第三个if条件详解:
m != 0 || model.length() == 1:遍历完成,是符合条件 的单词,并且加上了模板是一个单独单词的情况,此时m=0但是符合条件。
lines.charAt(l+1) == ’ ':应付(abc—>abcde)的情况,确保符合条件的是一个完整的单词。

最后用first布尔变量来判断是否是第一次出现,首字母的位置用减法得到。

代码如下(示例):

for(l = 0;l < lines.length();l++){if((lines.charAt(l) == model.charAt(m))&&((l == 0)||(lines.charAt(l-1) == ' '))){for(int i = 0;i < model.length()-1;i++){l++;m++;if(lines.charAt(l) != model.charAt(m)){m = 0;break;}}if((m != 0 || model.length() == 1) && lines.charAt(l+1) == ' '){sum++;if(first) {temp = l - m;first = false;}}m = 0;}}

3.整合最终答案

if(sum == 0) System.out.println(temp);else {System.out.print(sum+" "+temp);}

以上,感觉要考虑的情况很多。

洛谷P1308统计单词数Java题解相关推荐

  1. Java 洛谷 P1308 统计单词数

    题目链接:https://www.luogu.com.cn/problem/P1308 代码实例: import java.util.Scanner; public class Main{public ...

  2. c语言--洛谷p1308统计单词数

    //这道题思路是借鉴别人的 #include<stdio.h> #include<string.h> int main(){char a[11];char b[1000000] ...

  3. P1308 统计单词数

    P1308 统计单词数 题目描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数. 现在,请你编程实现这一功能,具体要求是:给定 ...

  4. 洛谷p1506——拯救oibh总部 Java题解 DFS

    看了一下java的题解比较少,来发表一下Java AC代码.用的是DFS,染色题型. import java.util.*; public class Main{static Scanner sc=n ...

  5. java中统计英文单词数_统计单词数 Java

    问题描述 统计输入英文文章段落中不同单词(单词有大小写之分, 但统计时忽略大小写)各自出现的次数. 输入段落中所含单词的总数不超过100,最长单词的长度不超过20个字母. 输入格式 一个包含若干句子的 ...

  6. 洛谷P3741 honoka的键盘Java题解

    这题的思路有俩: 思路1:将字符串转化成字符串数组,如何比对每相邻的值是否与VK相等,然后赋其他值,防止二次判断,这样先将VK找出,随后进行替换,如果出现VV或KK则替换一个即可变成VK,KV则不行 ...

  7. 洛谷 - P1308 统计单词数(字符串+模拟)

    题目链接:点击查看 题目大意:给出一个字符串a和字符串b,现在问字符串b中有多少个单词与字符串a相等,并记录第一次出现的位置 题目分析:看似很简单的一个模拟题,其实包含了不少需要注意的地方: stri ...

  8. 统计单词数,题解简单易懂量少

    题目描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数. 现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给 ...

  9. linux统计单词程序,linux统计单词数

    sort +awk+uniq 统计文件中出现次数最多的前10个单词 实例 cat logt.log|sort -s -t '-' -k1n |awk '{print $1;}'|uniq -c|sor ...

  10. 【OJ】洛谷字符串题单题解锦集

    题单简介 题目解析 P5733[深基6.例1]自动修正 P1914 小书童--密码 P1125 笨小猴 P1957 口算练习题 P5015 标题统计 P5734[深基6.例6]文字处理软件 P1308 ...

最新文章

  1. 如何用 Nginx 在公网上搭建加密数据通道
  2. [踏得网]HTML5在线教程阅读进度记录
  3. 常系数齐次线性递推学习笔记
  4. python-字符串转义符号
  5. 加速Java应用开发速度3——单元/集成测试+CI
  6. python中arr是什么意思_python中关于arr[...,1]和arr[:,:,1]的联系与区别
  7. [bzoj4516] [SDOI2016]生成魔咒
  8. Ubuntu14.04安装搜狗输入法的一点小问题
  9. SQL Server 2012基本介绍
  10. ios系统gps测试软件,GPS工具箱苹果版
  11. (三)进程各种id:pid、pgid、sid、全局pid、局部pid
  12. 您的Mac已成功加入Wi-Di网络,但是无法访问互联网问题及解决方案
  13. 怀孕计算机在线,【孕期天数计算器在线计算_孕期天数计算器在线计算专题】- 天鹅到家...
  14. 微信小程序之图片压缩
  15. 数据集下载地址(转)
  16. 关于微功率短距离无线电发射设备,无需做SRRC认证
  17. 解决办法之Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC
  18. DTRO垃圾渗滤液处理设备技术要点详解
  19. 计算机 五大算法类型,计算机算法设计五大常用算法的分析及实例.docx
  20. Ubuntu环境R程序安装ncdf4包:错误,找不到nc-config或不可执行

热门文章

  1. JS获取当前时间的日周月年的开始结束时间
  2. ios html fixed,关于IOS的Safari浏览器fixed定位失效的那些坑
  3. 台式计算机如何扫描文件,打印机怎么扫描,教您打印机怎么扫描文件
  4. A Knee_Guided Evolutionary Algorithm for Compressing Deep Neural Network (KGEA)解读
  5. 常与同好争高下,不与傻瓜论短长
  6. 德州大学计算机系郭小虎2021,2021美国德州农工大学PhD项目
  7. 传感器与检测技术基础知识(4)—— 电阻式传感器
  8. Spring注解@Value在controller无法获取到值
  9. c语言狐狸捉兔子问题
  10. ajax请求在ie浏览器上的兼容性问题