HUSTOJ 1110: 查找单词

1110: 查找单词

Time Limit: 1 Sec   Memory Limit: 128 MB
Submit: 343   Solved: 79
[ Submit][ Status][ Web Board]

Description

输入一个英文句子,例如:“This is a Book.",可以看到句子是以“.”来作为结束符号的,并且单词之间以一个空格来分隔。接着再输入一个单词A,请找出首次在句子中出现的与A相同的单词,是句子中的第几个单词,若不存在,则输出该句子中单词字符的总个数。 例如对上句子而言,若输入单词“is”,则应输出:2 若输入单词“isa”,则应输出:11

Input

第一行为以‘.’结束的一个词组(由若干个单词组成,单词间由一空格隔开)
第二行一个单词

Output

一个整数

Sample Input

This book is good book.
book

Sample Output

2
AC代码:

#include<cstdio>
#include<cstring>
const int N = 1000 + 10;
char e[N][N], s[N];
int main(){
	int len, i;
	int ans = 0;//统计字母数 
	for(i = 1;;i++){
		scanf("%s", e[i]);
		//是否有句号 
		len = strlen(e[i]);
		ans += len; 
		if(e[i][len - 1] == '.') break; 
	}
	getchar();
	scanf("%s", s); 
	bool flag = true;
	for(int j = 1; j <= i; j++){
		if(strcmp(e[j], s) == 0){
			printf("%d", j);
			flag = false;
			break;
		}
	}
	if(flag) printf("%d", ans - 1);
	return 0;
}





要实现这个功能,你可以使用Java的String和List数据结构来处理字符串。首先,你需要分割句子单词列表,然后遍历列表查找目标单词A的索引。如果找不到,就计算单词总数。以下是一个简单的示例代码: ```java import java.util.ArrayList; import java.util.List; public class WordFinder { public static void main(String[] args) { String sentence = "This is a book."; String targetWord = "is"; // 分割句子单词列表 List<String> words = splitSentence(sentence); // 查找目标单词并返回索引或单词总数 int index = findWordIndex(words, targetWord); System.out.println(index); } private static List<String> splitSentence(String sentence) { return new ArrayList<>(Arrays.asList(sentence.split("\\s+"))); } private static int findWordIndex(List<String> words, String targetWord) { for (int i = 0; i < words.size(); i++) { if (words.get(i).equals(targetWord)) { return i + 1; // 从0开始计数,所以加1 } } return words.size(); } } ``` 在这个代码,`splitSentence`方法使用正则表达式`\s+`来分割句子,`\s`匹配一个空白字符(包括空格、制表符和换行符),`+`表示一个或多个这样的字符。 `findWordIndex`方法遍历单词列表,如果找到目标词,返回其索引(注意加1是因为我们是从0开始计数的)。如果没有找到,返回单词总数,即列表的大小。 运行此程序,输入"book."作为句子和"a"作为目标单词"A",你会得到结果是2,因为"book"是第一个出现的与"a"相同单词,在句子的第二个位置(索引从1开始)。如果输入句子没有"A",结果将是7,因为单词总共有7个字符。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kunsir_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值