解题报告 『统计单词数(字符串)』

原题地址

字符串入门题,因为完全不擅长所以还是WA了好几次才过。

还犯了一个⑨错误,果然做题时不应该听《チルノのパーフェクトさんすう教室》……

代码如下:

#include <bits/stdc++.h>
using namespace std;

void write(int x)
{
    if (x < 0)
    {
        putchar(‘-‘);
        x = -x;
    }
    if (x > 9) write(x / 10);
    putchar(x % 10 + ‘0‘);
}

int main()
{
    string a, b;
    getline(cin, a);
    getline(cin, b);
    for (int i = 0; i < a.length(); i++) a[i] = tolower(a[i]);
    for (int i = 0; i < b.length(); i++) b[i] = tolower(b[i]);
    a = ‘ ‘ + a + ‘ ‘;//为了查找时
    b = ‘ ‘ + b + ‘ ‘;//能匹配准确.
    if (b.find(a) == string::npos) printf("-1");
    else
    {
        int first = b.find(a);
        int ans = 0, sep = b.find(a);//一开始ans未副初值,因为在C++中,定义局部变量时如果未初始化,则值是随机的,因为这WA了好几次,希望大家引以为戒.
        while (sep != string::npos)
        {
            ans++;
            sep = b.find(a, sep + 1);
        }
        write(ans);
        printf(" ");
        write(first);
    }
    return 0;
}

原文地址:https://www.cnblogs.com/Kirisame-Marisa/p/10311773.html

时间: 2024-08-29 17:55:18

解题报告 『统计单词数(字符串)』的相关文章

解题报告 『Raid(分治)』

原题地址 大概翻译一下题意: 在与联邦的战争接连失败之后,帝国方面撤退到了最后的据点.凭借着强大的防御系统,帝国军击退了联邦的六波进攻.经过几天不眠不休的思考,Arthur,联邦统帅,注意到防御系统的唯一弱点是它的能源供应.该系统由n个核电站进行充电,任何一个核电站的故障都会导致系统失效. 将军很快就发动了一次突袭,突袭者是准备潜行进入要塞的N名特工.不幸的是,由于帝国空军的攻击,他们未能按预期的位置着陆.作为一名经验丰富的将军,Arthur很快意识到他需要重新安排计划.他现在想知道的第一件事是

洛谷 P1308 统计单词数【字符串+模拟】

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

JSK-27321 统计单词数【字符串】

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

HDU 2072 单词数 --- 字符串处理

/* HDU 2072 单词数 --- 字符串处理 */ #include <cstdio> //C语言改成stdio.h即可 #include <cstring> //C语言改成string.h即可 const int maxn = 85; int main() { char *head1, *head2; char a[maxn]; char b[maxn][maxn]; int i, k, len, cnt1, cnt2; while (gets(a)){ //遇到字符串&q

Ruby中定义wc方法来统计单词数和行数等

在Ruby中我们定义一个wc方法,用来统计文件中出现的文本行数.单词数和字符数,ruby代码程序如下: def wc(filename)   nline = nword = nchar = 0   File.open(filename) do |io|     io.each_line do |line|       words = line.split(/\s+/).reject{|w| w.empty? }       #本例中使用了split方法分割单词,当行首有空白字符时,split方法

洛谷-统计单词数-简单字符串

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

【基础练习】【字符串处理】noip2011普及组第2题 统计单词数题解

这又是一道成功加入"容易吗"系列的基础题= =原本很简单,可是我一开始太大意看错了题,以为是让输出该单词是第几个单词,实际上应该输出该单词的首字母在第几个位置:改过后只得了二十分,看了一组数据,原来第一个单词前面可以有前导空格--幸亏其他单词前没有,否则还真不知道怎么办:实现的时候又出了各种问题.于是我决定总结一下. 题目: 给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置.注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章中的某一独立单词在不区分大

解题报告 『[USACO07JAN]Tallest Cow(差分)』

原题地址 建立一个数组high,若一对关系指明Ai与Bi可以互相看见(Ai < Bi),则把数组high中下标为Ai + 1到Bi - 1的数都减去1,意为Ai到Bi之间的牛的身高至少比它们少1. 再加一个辅助数组sup可以将时间复杂度由O(NM)降到O(N + M). 代码实现如下: #include <bits/stdc++.h> using namespace std; #define rep(i, a, b) for (register int i = a; i <= b;

解题报告 『酒店之王(网络最大流 + 拆点)』

原题地址 网络流板子题 + 拆点,个人觉得蓝题比较合适. 尽管我一开始只得了10分. 具体还是看代码吧. 代码实现如下: #include <bits/stdc++.h> using namespace std; #define rep(i, a, b) for (register int i = a; i <= b; i++) const int inf = 0x3f3f3f3f, maxn = 1e4 + 5; int n, p, q, S, T, ans = 0, num_edge