3411:练70.3 删除单词后缀
练 70.3 删除单词后缀
20 删除单词后缀
教四年级小朋友学编程-【字符串函数28】删除单词后缀
《信息学奥赛一本通》题解_1141_删除单词后缀
#include <bits/stdc++.h>
using namespace std;
int main()
{
string s;int len;
cin>>s;
len=s.size();
if(s[len-2]=='e'&&s[len-1]=='r') len-=2;
if(s[len-2]=='l'&&s[len-1]=='y') len-=2;
if(s[len-3]=='i'&&s[len-2]=='n'&&s[len-1]=='g') len-=3;
for(int i=0;i<len;i++)cout<<s[i];
return 0;
}
3412:【例71.1】 字典序排序
[例 71.1]字典序排序
#include <bits/stdc++.h>
using namespace std;
pair<int,char> a[1005];
int cnt,ans;
bool cmp(pair<int,char> a,pair<int,char> b){
return a.second<b.second;
}
int main()
{
while(cin>>a[++cnt].second){
a[cnt].first=cnt;
}
stable_sort(a+1,a+cnt,cmp);
for(int i=1;i<cnt;i++){
ans+=abs(a[i].first-i);
}
cout<<ans;
return 0;
}
3413:【例71.2】 01串排序
[例 71.2] 01 串排序
#include <bits/stdc++.h>
using namespace std;
bool cmp(string x,string y){
int lx=x.size(),ly=y.size();
int ox=0,oy=0;
for(int i=0;i<lx;i++) ox+=x[i]-48;
for(int i=0;i<ly;i++) oy+=y[i]-48;
return lx<ly||
lx==ly&&ox<oy||
lx==ly&&ox==oy&&x<y;
}
int main()
{
int n;string a[105];
cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
sort(a,a+n,cmp);
for(int i=0;i<n;i++) cout<<a[i]<<endl;
return 0;
}
3414:【例71.3】 拼最大整数
[例71.3]拼最大整数
#include<bits/stdc++.h>
using namespace std;
int n;
string a[1000];
bool cmp(string &a,string &b) {
return (a+b > b+a);
}
int main(){
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
sort(a,a+n,cmp);
for(int i=0;i<n;i++){
cout<<a[i];
}
}
3415:练71.1成绩排序
练 71.1成绩排序
#include <bits/stdc++.h>
using namespace std;
struct stu{
string m;
int s;
}a[25];
bool cmp(stu s1,stu s2){
if(s1.s>s2.s)return 1;
else
if(s1.s==s2.s&&s1.m<s2.m)return 1;
else return 0;
}
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)cin>>a[i].m>>a[i].s;
sort(&a[0],&a[n],cmp);
for(int i=0;i<n;i++)cout<<a[i].m<<" "<<a[i].s<<endl;
return 0;
}
《信息学奥赛一本通 编程启蒙 C++版》 3411-3420(10题)
小学生C++入门书籍、算法入门书籍,NOI数学书籍等
小学生C++入门书籍、程序员的数学入门书籍、算法启蒙书籍等
《小学生C++趣味编程》Scratch、C++