360笔试答案(子串+散步)

先说思路 ,子串的思路就是一定是单个字符会出现最多次,因此遍历一遍字符串,哪个字符出现最多答案就是几#360公司##笔试题目#
全部评论
卧槽,我咋当时就没想到这个问题!
点赞 回复 分享
发布于 2019-08-31 18:02
上代码 #include<iostream> #include<map> #include<string> using namespace std; int main() { string str; cin>>str; map<char,int> mp; for(int i=0;i<str.size();i++) { mp[str[i]]++;     } int max=0; for(auto i=mp.begin();i!=mp.end();i++) { max =  max < (*i).second ? (*i).second : max; } cout<<max; }
点赞 回复 分享
发布于 2019-08-31 18:03
我也是这个思路,不清楚为啥只有64%
点赞 回复 分享
发布于 2019-08-31 18:05
对哦,一定是单个字符子串的最大值就是第一题的最大值,😭😭😭,我傻傻的遍历了两个字符,三个字符的字符串,最后超时了。
点赞 回复 分享
发布于 2019-08-31 18:09
2 再说散步,其实更简单了,每次都有两个结果,要么左要么右,典型的dfs啊,循环退出条件为起点超出范围,循环结束条件为D数量用完。
点赞 回复 分享
发布于 2019-08-31 18:04
贪心算法解散步问题只有91%,不知道哪里出错了
点赞 回复 分享
发布于 2019-08-31 18:05
python可以参考 https://blog.csdn.net/z13653662052/article/details/100175482
点赞 回复 分享
发布于 2019-08-31 18:06
n = list(input()) count = [0] * 26 block_times = 0 for i in n:     count[ord(i) - 97] += 1 ans = max(count) print(ans) 为啥只过了9。。。。。。
点赞 回复 分享
发布于 2019-08-31 18:06
#include<iostream> #include<map> #include<vector> using namespace std; map<int,int> mp; void dfs(const vector<int> & vec,int index,int start,int n) { if(start>=1 && start<=n) { if(index>=vec.size()) { mp[start]++; } else { dfs(vec,index+1,start+vec[index],n,count); dfs(vec,index+1,start-vec[index],n,count); } } } int main() {     int n,m; cin>>n>>m; vector<int> vec; while (m--) { int tmp; cin>>tmp; vec.push_back(tmp); } for(int i=1;i<=n;i++) { dfs(vec,0,i,n); } cout<<mp.size(); }
点赞 回复 分享
发布于 2019-08-31 18:06
递归写的dfs,只过了0.73,当时怎么都想不起来怎么改循环了,哎
点赞 回复 分享
发布于 2019-08-31 18:07
我去?第二题是可能的终点的位置吗,我算的起点,我说怎么测试用例过不去。
点赞 回复 分享
发布于 2019-08-31 18:12
https://www.nowcoder.com/discuss/240269?toCommentId=3786919
点赞 回复 分享
发布于 2019-08-31 18:18

相关推荐

offer多多的六边形战士很无语:看了你的博客,感觉挺不错的,可以把你的访问量和粉丝数在简历里提一下,闪光点(仅个人意见)
点赞 评论 收藏
分享
评论
2
9
分享
牛客网
牛客企业服务