1、输入一个字符串,将字符串中的单词按照空格分隔开来(分别打印出来)。
假设这个字符串的开头是没有空格的,并且每两个单词中间只有一个空格。
#include<bits/stdc++.h>
using namespace std;
int main(){
char str[111];
// gets(str);
fgets(str,111,stdin);
int n = strlen(str);
for(int i=0;i<n;i++){
int j = i;
while(j<n&&str[j]!=' ') j++;
for(int k=i;k<j;k++)
cout<<str[k];
cout<<endl;
i = j;
}
return 0;
}
2、最长连续不重复子序列
题目
#include<iostream>
using namespace std;
const int N = 100000 + 11;
int a[N],b[N];
int main(){
int n = 0;
cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
int res = 0;
for(int i=0,j=0;i<n;i++){
b[a[i]]++;
while(b[a[i]]>1){
b[a[j]]--;
j++;
}
res = max(res,i-j+1);
}
cout<<res;
return 0;
}
3、数组元素的目标和
题目
#include<iostream>
using namespace std;
const int N = 100000 + 11;
int a[N],b[N];
int n,m,x;
int main(){
cin>>n>>m>>x;
for(int i=0;i<n;i++) cin>>a[i];
for(int i=0;i<m;i++) cin>>b[i];
for(int i=0,j=m-1;i<n;i++){
while(j>=0&&a[i]+b[j]>x) j--;
if(a[i] + b[j] == x){
cout<<i<<" "<<j;
break;
}
}
return 0;
}