T1:缺失的数字
题目描述;
我是敦立坤的爹!!!
一个整数集合中含有n个数字,每个数字都在0~n之间。假设0~n的n+1个数字中有且仅有一个数字不在该集合中,请找出这个数字。
分析:
这里引用一个桶的思想
我们设 a [ x ] a[x] a[x]表示数字x是否出现过
这个时候下标x不再是一个寻常数组的编号,而是一个"值"
里面存放的是数值为x的数字的有关信息(比如是否出现过,出现过几次等等)
利用这种思路,就可以解决这道题
Code
cpp
#include<bits/stdc++.h>
using namespace std;
int a[10100];
int main(){
int x;
cin>>x;
for (int i = 0,y; i < x; i++)
cin>>y , a[y] = 1;//出现了一个数字y,就标记一下
for (int i = 0; i <= x; i++)
if (!a[i]) cout<<i;//如果当前数字没出现过就输出
return 0;
}
T2:查找最长单词
题目分析:
在进行文章重复度检查时,经常需要统计一段英文中的单词数量,并找出长度最长的单词。
分析:
以空格为分隔,找出单词即可。
并求出长度最长的单词
注意需要在字符串后面加上一个空格,确保能取出最后一个单词
Code
cpp
#include<bits/stdc++.h>
using namespace std;
string s;
int Max = 0;
string Maxx = "";
int num = 0;
int main(){
getline(cin,s);s+=' ';//加空格
string now = "";
for (int i = 0 ; i < s.size(); i++)
if (s[i] == ' '){
num++;//出现次数加一
if (Max < now.size()) Max = now.size() , Maxx = now;//纪录最大
now = "";
}
else now+=s[i];//加上
cout<<num<<' '<<Max<<' '<<Maxx;
return 0;
}
T3:到底买不买
题目描述:
太长了不管了