阿里笔试C++软件开发

选择题太坑,一路懵逼过来,很多JAVA题,编程题一道AC,第二道40%;
第一道代码:  中间变量有点多,为了解题速度,看看思路就行
#include<iostream>
#include<string>
#include<vector>
#include<set>
#include<algorithm>
using namespace std;
void mincut(const string& str, int start,const set<string>& dict,vector<string> output,vector<string> &result)
{
if(start == str.length())
{
if(result.empty() || (!output.empty()&& result.size()>output.size()))//收敛条件
{
result.clear();
result = output;
}
return;
}
for(int i=start;i<str.size();i++)
{
string tmp = str.substr(start,i-start+1);
if(find(dict.begin(),dict.end(),tmp) !=dict.end())
{
output.push_back(tmp);
mincut(str,i+1,dict,output,result); //深搜寻找
output.pop_back();
}
}

}

int main(int argc, const char * argv[])
{
string strS;
string dictStr;
int nDict;
set<string> dict;

cin>>strS;
cin>>nDict;
for (int i = 0; i < nDict; i++)
{
cin>>dictStr;
dict.insert(dictStr);
}
vector<string> output;
vector<string> result;
mincut(strS,0, dict,output,result);
if(!result.empty()) //输出结果
{
auto it=result.begin();

for(;it!=prev(result.end());it++)
cout<<*it<<" ";
cout<<*it<<endl;
}
else
cout<<"n/a"<<endl;
return 0;
}
#阿里巴巴#
全部评论
目测第二题直接输出的1.0,哈哈哈
点赞 回复 分享
发布于 2017-08-26 00:41

相关推荐

07-24 03:49
门头沟学院 Java
牛客73769814...:这种小作坊去了也费劲
点赞 评论 收藏
分享
07-07 12:47
门头沟学院 Java
码农索隆:竟然还真有卡体检报告的
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-25 18:02
来组里2个月了,天天让打杂,写的代码不超过200行。现在已经开始摆烂冲秋招了。我感觉4个月,就算周六日全天睡觉,周一到周五一直看黑马也比我来节子实习学到的东西多。
小熊梦奇:😅节子那么多文档,你是一个都不看啊。 大厂的意义在于内部系统对你开放,看明白事情起因经过结果解决措施,实在看不明白,直接聊天系统搜到对应团队去问当时的负责人,大部分情况下都会给你解答。 这才是大厂实习的精髓
实习生的蛐蛐区
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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