当前位置: 首页 > news >正文

上海创智学院(测试)算法笔试(ACM赛制)部分例题

1.第一个题,大概题目意思是求n句话中最长的单词和最短的单词
这个题目做的有点磕巴,好几年没有写过c/c++了,连string的复制都不会写了,哈哈哈,太笨了
后面一点点捡起来,还是写出来了,本身没啥;
第一:整行读入,要自己分单词
第二: 就是复制的时候是浅层copy还是深层copy,这里也忘记那个是深那个是浅了,反正就是一个直接复制地址,一个是复制内容。
粗暴的代码:


#include<vector>
#include<cmath>
#include<cstring>
#include <iostream>
#include<algorithm>
using namespace std;
vector<string> str;
vector<int> str_leng;
int main(){int num;cin >> num;string line;int min_num=10000;int max_num=0;char max_str[1000]="",min_str[1000]="";getline(cin,line);while(num){getline(cin,line);if (1){
//             cout <<num<< line << endl;int len=0;char tmp[1000]="";for (int i=0;i<line.length();i++){if (line[i]!=' '){tmp[len]=line[i];len++;}if(line[i]==' ' | i==line.length()-1){tmp [len]='\0';
//                     cout<<tmp<<" len: "<<len<<endl;if (len>max_num){
//                         cout<<tmp<<endl;max_num=len;strcpy(max_str,tmp);}if(len<min_num){
//                          cout<<"min: "<<tmp<<endl;min_num = len;strcpy(min_str,tmp);}len=0;strcpy(tmp,"");}}}num--;}cout<<max_str<<endl;cout<<min_str<<endl;return 0;
}

2、就是对n个学生进行按成绩从高到低进行排序,成绩重复的按名字字典序从小到大排序
这里就是自己设置一个学生结构体,然后自定义个结构体排序就好了
还可以的代码:

沉默:
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;struct student{char  name[20];int score;
};
bool com(const student x,const student y)
{if(x.score==y.score)return x.name<y.name;return x.score>y.score;
}
int main(){int n;cin >>n;student std[30];for(int i=0;i<n;i++){cin >> std[i].name >> std[i].score;}sort(std,std+n,com);for(int i=0;i<n;i++){cout<<std[i].name<<" "<<std[i].score<<endl;}return 0;
}

3题
请添加图片描述
代码:
数学计算题:

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;int main(){int n=1;int res=0;int tmp =0;for (int i=0;i<1;i++){tmp = (n+1)*2;n = tmp;}cout<< n<<endl;return 0;
}

请添加图片描述
用队列来表示能生存的数字,被队列抛弃的就是死掉的数字,最后只剩一个数的时候,就是最终答案。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<queue>
using namespace std;
queue<int> q1;
int main(){int n;cin>>n;int id=1;int num=1;q1.push(id);bool flag=false;while(!q1.empty()){if(flag && q1.size()==1){cout<<q1.front()<<endl;return 0;}num++;if (id<n && !flag){id++;}else{flag=true;id=q1.front();q1.pop();}if(num==3){num=0;}else{q1.push(id);}}return 0;
}
http://www.lryc.cn/news/543005.html

相关文章:

  • 【学术投稿-第四届材料工程与应用力学国际学术会议(ICMEAAE 2025】材料工程与应用力学的探讨
  • 2025吐槽季第一弹---腾讯云EO边缘安全加速平台服务
  • 力扣-动态规划-70 爬楼梯
  • 【DeepSeek】-macOS本地终端部署后运行DeepSeek如何分析图片
  • 使用 pytest-mock 进行 Python 高级单元测试与模拟
  • lowagie(itext)老版本手绘PDF,包含页码、水印、图片、复选框、复杂行列合并等。
  • 《Linux 指令集:开启极客世界的钥匙_01》
  • 【Android】用 chrome://inspect/#devices 调试H5页面
  • Deepseek 实战全攻略,领航科技应用的深度探索之旅
  • 《论区块链技术及应用》审题技巧 - 系统架构设计师
  • ROS2 强化学习:案例与代码实战
  • 【Python模块】——pymysql
  • 【我的Android进阶之旅】Android Studio SDK Update Site 国内的腾讯云镜像配置指南
  • springboot实现多文件上传
  • Webpack打包优化
  • 浅谈HTTP及HTTPS协议
  • GTID的基本概念
  • .NET Core MVC IHttpActionResult 设置Headers
  • 数据结构与算法面试专题——桶排序
  • 深度学习奠基作 AlexNet 论文阅读笔记(2025.2.25)
  • MongoDB 数据库简介
  • Transformer LLaMA
  • 【DeepSeek开源:会带来多大的影响】
  • Redis7——基础篇(七)
  • 边缘计算:通俗易懂的全方位解析
  • Flink 中的滚动策略(Rolling Policy)
  • GPU和FPGA的区别
  • 网易云音乐分布式KV存储实践与演进
  • WordPress平台如何接入Deepseek,有效提升网站流量
  • 【嵌入式】STM32内部NOR Flash磨损平衡与掉电保护总结