1.前缀合
解题代码
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
//前缀和
long n,q;
long l,r;
long sum[100010];
int main()
{
cin>>n>>q;
for(int i=1;i<=n;i++)
{
cin>>sum[i];
sum[i]+=sum[i-1];
}
for(int i=0;i<q;i++)
{
cin>>l>>r;
cout<<sum[r]-sum[l-1]<<endl;
}
}
2.倒置字符串
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
string str[1000];
int main()
{
int i=0;
while(cin>>str[i++]){}
cout<<str[i-1];
for(int j=i-2;j>=0;j--)
cout<<str[j]<<" ";
return 0;
}
3.删除公共字符
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int flag[100010];
string s1;
string s2;
int main()
{
getline(cin,s1);
getline(cin,s2);
for(int i=0;i<size(s1);i++)
{
for(int j=0;j<size(s2);j++)
{
if(s1[i]==s2[j] && s1[i]!=' ')
{
flag[i]=1;
}
}
}
for(int i=0;i<size(s1);i++)
{
if(flag[i]!=1)
{
cout<<s1[i];
}
}
return 0;
}
4.字母统计
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int sum[100];
string s;
int main()
{
cin>>s;
for(int i=0;i<size(s);i++)
{
if(s[i]>='A' && s[i]<='Z')
{
sum[int(s[i]-'A')]++;
}
}
for(int i=0;i<26;i++)
{
cout<<char('A'+i)<<":"<<sum[i]<<endl;
}
return 0;
}
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
string s;
int sum[100];
int main()
{
cin>>s;
for(int i=0;i<size(s);i++)
{
sum[s[i]]++;
}
for(int i='A';i<='Z';i++)
{
cout<<char(i)<<":"<<sum[i]<<endl;
}
return 0;
}
二、笔记
算法模板
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<set> //自动去重,自动排序
using namespace std;
int main()
{
return 0;
}