SRM Vision 暑期培训

by Leozheng @ SRMVision

§2  数组与字符串 / 函数与Lambda表达式

#include <iostream>
using namespace std;

int main(){
    double balance[] =  {1000.0, 2.0, 3.4};
    for (int i = 0; i < 5; ++i)
        balance[i] = i * i;
    
    
    int mat[10][5] = {0};
    for (int i = 0; i < 10; ++i)
    	for (int j = 0; j < 5; ++j)
            mat[i][j] = i + j;
    	
    return 0;
}

2.5 数组与字符串

#include <iostream>
using namespace std;

int main(){
    string str1 = "RoboMaster", str2 = "SRM";
    string str3; int len;
    // 复制 str1 到 str3
    str3 = str1; cout << "str3 : " << str3 << endl;
    // 连接 str1 和 str2
    str3 = str1 + str2;
    cout << "str1 + str2 : " << str3 << endl;
    // 连接后,str3 的总长度
    len = str3.size();
    cout << "str3.size() : " << len << endl;
    // 清空 str3 的内容
    str3.clear();
    cout << "str3 : " << str3 << endl;
    // 判断 str3 是否为空
    if (str3.empty())
    cout << "str3 empty" << endl;
    	
    return 0;
}

2.7 函数与Lambda表达式

#include <iostream>
using namespace std;
// 函数声明
int max(int num1, int num2);

int main() {
    // 局部变量声明
    int a = 100; int b = 200;
    int ret;
    // 调用函数来获取最大值
    ret = max(a, b);
    cout << "The max value is: " << ret << endl;
    
    auto lambda_max = [](int a, int b) -> int { return a < b ? b : a; };
    cout << lambda_max(a, b) << endl;
    
    return 0;
}

// 函数定义
int max(int num1, int num2) {
    return num1 > num2 ? num1 : num2;
}

2.7 函数与Lambda表达式

#include <iostream>
#include <algorithm>
using namespace std;
struct Node{
    int id;
    bool sex;
};

bool cmp1(Node x, Node y){
    return x.id < y.id;
}

int main() {
    Node stu[1000];
    sort(stu, stu+1000, cmp1);
    sort(stu, stu+1000, [](Node a, Node b) -> bool { return a.id < b.id; });
    
    return 0;
}

第二讲 - 作业:请用string类实现(必做)

[NOIP2011 普及组] 统计单词数

题目描述

一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。

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

输入格式

2行。

1行为一个字符串,其中只含字母,表示给定单词;

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

输出格式

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

样例 #1

样例输入 #1

To
to be or not to be is a question

样例输出 #1

2 0

样例 #2

样例输入 #2

to
Did the Ottoman Empire lose its power at that time

样例输出 #2

-1

提示

数据范围

1≤ 第一行单词长度≤10

1≤ 文章长度≤1,000,000

感 谢

@ SRMVision