统计单词:JAVA

server/2024/12/28 5:05:22/

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
 

题目描述

一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。
现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章
中的某一独立单词在不区分大小写的情况下完全相同(参见样例1 ),如果给定单词仅是文章中某一单词的一部分则不算匹配(参见样例2 )

输入描述:

共 2 行。
第 1 行为一个字符串,其中只含字母,表示给定单词;
第 2 行为一个字符串,其中只可能包含字母和空格,表示给定的文章

输出描述:

一行,如果在文章中找到给定单词则输出两个整数,两个整数之间用一个空格隔开,分别是单词在文章中出现的次数和第一次出现的位置(即在文章中第一次出现时,单词首字母在文章中的位置,位置从 0 开始);如果单词在文章中没有出现,则直接输出一个整数 -1。

示例1

输入

To
to be or not to be is a question

输出

2 0

说明

输出结果表示给定的单词 To 在文章中出现两次,第一次出现的位置为0。 

示例2

输入

to
Did the Ottoman Empire lose its power at that time
-1

说明

表示给定的单词 to 在文章中没有出现,输出整数-1。 
import java.util.Scanner;public class Main {public static void main(String[] args) {// 创建一个扫描器对象以读取输入Scanner sc = new Scanner(System.in);// 读取第一行输入并转换为大写字母String a = sc.nextLine().toUpperCase();// 读取第二行输入并转换为大写字母String b = sc.nextLine().toUpperCase();// 初始化变量int x = 0; // 用于记录每个单词的起始位置int res1 = 0; // 用于记录匹配到的单词数量int res2 = 0; // 用于记录第一个匹配单词的起始位置// 遍历字符串b的每一个字符for (int i = 0; i < b.length(); i++) {// 如果当前字符是空格,表示一个单词结束if (b.charAt(i) == ' ') {// 检查从x到i之间的子字符串是否与a相等if (a.equals(b.substring(x, i))) {// 如果是第一次匹配,记录起始位置if (res1 == 0) {res2 = x;}// 增加匹配计数res1++;}// 更新下一个单词的起始位置x = i + 1;}}// 如果没有找到任何匹配的单词,输出-1if (res1 == 0) {System.out.println(-1);} else {// 否则输出匹配的数量和第一个匹配单词的起始位置System.out.println(res1 + " " + res2);}}
}


http://www.ppmy.cn/server/153817.html

相关文章

JVM系列(十二) -常用调优命令汇总

最近对 JVM 技术知识进行了重新整理&#xff0c;再次献上 JVM系列文章合集索引&#xff0c;感兴趣的小伙伴可以直接点击如下地址快速阅读。 JVM系列(一) -什么是虚拟机JVM系列(二) -类的加载过程JVM系列(三) -内存布局详解JVM系列(四) -对象的创建过程JVM系列(五) -对象的内存分…

Oracle之限定查询

文章目录 1. 查询出工资大于1000的所有雇员信息.2. 查询出姓名是Smith的雇员信息3. 查询出工资在1000~1500之间的所有非销售人员的编号、姓名、职位、工资4. 查询出所有不是办事员&#xff08;CLERK&#xff09;的员工信息4. 查询所有是办事员的员工信息5. 查询出职位是办事员&…

微信小程序-基于Vant Weapp UI 组件库的Area 省市区选择

Area 省市区选择&#xff0c;省市区选择组件通常与 弹出层 组件配合使用。 areaList 格式 areaList 为对象结构&#xff0c;包含 province_list、city_list、county_list 三个 key。 每项以地区码作为 key&#xff0c;省市区名字作为 value。地区码为 6 位数字&#xff0c;前两…

微涉全栈(react,axios,node,mysql)

纯小白从前端跨域发起axios get请求获取数据 如果有兴趣欢迎往下看&#xff1a; //nodejs部分 const express require(express) const app express() const mysql require(mysql2) // 创建一个数据库连接 const connection mysql.createConnection({host: localhost,use…

【每日学点鸿蒙知识】图片控件对齐、上架的应用无法拉起应用详情页、RotateOptions配置、签名配置问题、弹框背景色

1、HarmonyOS 异步接口是否会启动一个子线程来执行其中的逻辑&#xff1f; 异步机制ArkTS仅在单线程&#xff08;主线程&#xff09;上执行任务&#xff0c;其异步机制与JavaScript一致&#xff0c;都是通过宿主环境提供的线程实现&#xff08;napi&#xff0c;其接口与nodejs…

【Android Studio】创建新项目遇到的一些问题

1.Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0. 这个问题的原因是我在使用 distributionUrlhttps\://services.gradle.org/distributions/gradle-7.0.2-bin.zip出现的&#xff0c;表示项目正在使用已弃用的 Gradle 功能&am…

运维相关知识科普

运维相关知识科普参考文章 一、运维究竟是什么 在当今数字化蓬勃发展的浪潮下&#xff0c;运维作为保障各类线上服务及产品顺畅运行的关键力量&#xff0c;其重要性不言而喻。运维&#xff0c;简言之&#xff0c;就是运用一系列专业的步骤与方法&#xff0c;对线上服务和产品…

视频汇聚融合云平台Liveweb一站式解决视频资源管理痛点

随着5G技术的广泛应用&#xff0c;各领域都在通信技术加持下通过海量终端设备收集了大量视频、图像等物联网数据&#xff0c;并通过人工智能、大数据、视频监控等技术方式来让我们的世界更安全、更高效。然而&#xff0c;随着数字化建设和生产经营管理活动的长期开展&#xff0…