搜狐9.13软件开发 编程题

1题
兄弟串
通过交换两个字符能得到的串称为兄弟串,判断两个字符串是否为兄弟串
AC
思路:判断两个字符串中相同位值不同的个数,将相应位置为*,若=2,则符合要求,
若!=2,则排序,若存在至少两个不为*的相同字符,则也符合要求
#include<bits/stdc++.h>
using namespace std;
int main(){
string a,b;
while(cin>>a>>b){
int count = 0;
bool flg = false;
if(a.size()!=b.size())
cout<<0<<endl;
else{
for(int i = 0;i<a.size();i++){
if(a[i]!=b[i]){
count++;
a[i] = '*';
b[i] = '*';
}
}
if(count==2)
flg = true;
else{
sort(a.begin(),a.end());
sort(b.begin(),b.end());
for(int i = 0;i<a.size()-1;i++){
if(a[i]==a[i+1]&&a[i]!='*'){
flg = true;
break;
}
}
}
if(flg)
cout<<1<<endl;
else
cout<<0<<endl;
}
}
system("pause");
return 0;
}

2题
计算移动次数
无限长的x轴,从坐标0开始,每次向左或向右移动,第n次移动就移动n
问移动到目的点的最少移动次数
AC
思路:1~k最大可以得到(1+k)*k/2;将n转为正数,因为n与-n的次数相同,只是镜像取正负;
使得(1+k)*k/2>=n,则(1+k)*k/2-n得到的是小于(1+k)*k/2的正数,若减完后是偶数x,
则可以通过调整1~k中若干个数ai+aj+ak+al....=x/2,将相应的+号转为-号,即可实现将结果-x,
也就是最小的移动次数
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
while(cin>>n){
int pos = 0;
if(n<0)
n = -n;
for(int i = 0;i<n+5;i++){
int temp = (1+i)*i/2;
if(temp>=n&&(temp-n)%2==0){  //temp>=n且减数为偶数
pos = i;
break;
}
}
cout<<pos<<endl;
}
system("pause");
return 0;
}

3题
比较版本号大小
判断两个版本号大小
AC
思路:将版本号补齐,直接比较字符串的大小
#include<bits/stdc++.h>
using namespace std;
int main(){
string a,b;
while(cin>>a>>b){
if(a.size()==1)
a+=".0.0.0";
else if(a.size()==3)
a+=".0.0";
else if(a.size()==5)
a+=".0";
if(b.size()==1)
b+=".0.0.0";
else if(b.size()==3)
b+=".0.0";
else if(b.size()==5)
b+=".0";

bool flg = a>b;
if(flg)
cout<<1<<endl;
else if(a==b)
cout<<0<<endl;
else
cout<<-1<<endl;
}
system("pause");
return 0;
}
#搜狐#
全部评论
class Solution:     def buddyStrings(self, A, B):         """         :type A: str         :type B: str         :rtype: bool         """         if len(A) != len(B):             return False         else:             count = 0             aa=[]             bb=[]             for i in range(len(A)):                 if A[i] != B[i]:                     count += 1                     aa.append(A[i])                     bb.append(B[i])             if count == 2:                 if list(reversed(bb)) == aa:                     return True                 else:                     return False             elif count == 0 and len(set(A)) != len(A):                  return True             else:                 return False #注意考虑 aab  和  aab这种情况也是可以的!两个字符串一样,但是 有重复的字符就可以! if list(reversed(bb)) == aa: 是为了避免 ab和 cd这种情况被判为True
点赞 回复 分享
发布于 2018-09-13 22:10
大佬,第二题的思路是你纯靠聪明才智想出来的?还是以前遇到过类似的编程题或者数学题呢?
点赞 回复 分享
发布于 2018-09-13 21:59
第一题没有问题吗?abc和ade好像在大佬的程序里也是输出1吧
点赞 回复 分享
发布于 2018-09-13 21:16
蒂花之秀
点赞 回复 分享
发布于 2018-09-13 20:52
看不懂大神写的第二题....第二题不属于我
点赞 回复 分享
发布于 2018-09-13 20:51
真的牛啊
点赞 回复 分享
发布于 2018-09-13 20:43
好像第二题明白了,不过你为啥是< n + 5
点赞 回复 分享
发布于 2018-09-13 20:42
大佬请收下我的膝盖🐼
点赞 回复 分享
发布于 2018-09-13 20:41
第二题用了n^2暴力,,一直47%。一开始没想通想试下x(x+1) retrun x或x+1,最后没试,可惜了。
点赞 回复 分享
发布于 2018-09-13 20:38

相关推荐

01-03 17:11
门头沟学院 Java
团队目前已经启动校招补录啦,招聘面向26年10月前毕业博士,岗位为大模型研发岗,方向包含训推优化、Agent应用、算力管理等。对岗位有任何疑问都可以在底下留言或者私聊哦。投递简历前可以先私聊进行初步简历评估。简历投递邮箱:wuchaojin.wcj@alibaba-inc.com-----------------------&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;岗位介绍&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;---------------------------一、关于我们我们是【阿里云智能-政企事业部-AI&nbsp;Studio团队】一支充满激情与创造力的团队,致力于打造领先的全栈AI智算服务平台。在这里,你将与顶尖的技术人才并肩作战,共同探索前沿的AI技术。团队工作职责:一站式AI工程化:&nbsp;从数据集管理、模型开发、训练到推理,我们提供覆盖AI工程化全流程的平台能力,尤其专注于大模型的开发、管理、调优和应用。强大的算力引擎:&nbsp;平台支持多种异构算力的管理和调度,提供多种模型训练方式,并支持单机多卡、多机多卡并行训练,以及自动弹缩、断点续训等容错恢复能力。极致的性能优化:&nbsp;我们在数据处理、并行计算、数据传输内存优化、GPU通信优化、资源利用率优化等方面,结合不同GPU机器硬件进行软硬件深度优化,显著提升不同模型框架在不同算力上的训练和推理性能。前沿技术应用:我们基于云原生,紧跟AI领域的前沿科技,深耕大模型推理性能提升、大规模的模型训练等领域。二、工作机会我们正在寻找这样的你:对大模型开发和大模型应用充满热情,并具备一定的研究背景。计算机相关专业,具备扎实的编程基础和算法功底。积极主动,乐于学习,具备良好的沟通能力和团队合作精神。工作地点:&nbsp;深圳、杭州、北京你将深度参与:云原生AI训推一体平台的设计与开发。模型训练和推理引擎的研发与性能提升。RAG、AI&nbsp;Agent等前沿技术的探索与实践。简历投递邮箱:wuchaojin.wcj@alibaba-inc.com三、岗位介绍【AI研发岗位】ꔷ&nbsp;岗位职责1、针对大模型推理、训练等场景,优化和扩展vLLM、SGLang等框架的核心模块,提升计算效率与资源利用率;2、能够使用Profiler手段,分析训练瓶颈,使用分布式策略调优、算子优化等手段来提升训练性能;3、提升分布式推理下模型并行(ModelParalleism)、数据并行(Data&nbsp;Paralelism)等场景下的性能;4、支撑异构AI芯片上的调度框架设计与优化,提升系统的实时性、吞吐率、算力利用率等指标;5、针对不同端侧设备的硬件特性(CPU、GPU、NPU&nbsp;等)进行镜像和训推框架适配,针对特定硬件架构和推理引擎进行性能优化;6、探索前沿技术方向(如混合专家模型MoE、强化学习算法等),推动AI工程化落地的效率提升。ꔷ&nbsp;岗位要求1、教育背景•计算机科学、人工智能、机器学习、数据科学等相关专业博士。2、技术能力•熟悉深度学习模型(如Transformer、BERT等)及其推理过程;•熟悉模型优化技术(如剪枝、量化、知识蒸馏、模型并行等);•熟悉推理框架(如TensorFlow、PyTorch、PaddlePaddle)及其优化方法,有图优化经验者优先;3、编程能力•至少熟练使用C++/Python/Golang中一种,具备良好的算法设计与代码实现能力;4、经验要求•有大模型推理优化经验者优先,熟悉政企客户业务场景者加分;•具备独立分析和解决问题的能力,能够快速学习新技术并应用到实际工作中。5、其他要求•具备良好的沟通能力和团队合作精神,能够与业务部门和技术团队高效协作;•对人工智能技术有浓厚兴趣,具备较强的学习能力和技术钻研精神。关联tag:阿里&nbsp;阿里云&nbsp;淘天&nbsp;淘宝&nbsp;支付宝&nbsp;蚂蚁&nbsp;美团&nbsp;腾讯&nbsp;华为&nbsp;字节跳动&nbsp;抖音&nbsp;秋招&nbsp;春招&nbsp;补录&nbsp;AI&nbsp;人工智能
点赞 评论 收藏
分享
01-08 02:04
已编辑
北京邮电大学 算法工程师
查看10道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务