hihocoder——微软在线笔试T1

声明:不知道会不会涉及保密协议,只是单纯记录一下自己的代码。

输入一个字符串,和x y z三个整数

将字符串字符逐个放入盒子,当前n个字符个数的差等于x y z时,前n个字符消失,再将剩余的字符放入盒子。

求出盒子放过的最多个字符。

(原题目是颜色不同的球入盒)

eg:输入(“RRYBRBRYBRY”,4,1,2),输出7

【思路】

设计三个函数:

1.3个数的差的绝对值是否等于给定的3个数——bool isvanish(int x, int y, int z, int a, int b, int c)

2.字符串前几个字符可以消失——int isvanish(string s, int x, int y, int z)

3.盒中放入最多的字符数

【my code】

(不完整,最后还得加个套子,略)

bool isvanish(int x, int y, int z, int a, int b, int c)
{
    int aa=abs(a-b);
    int bb=abs(b-c);
    int cc=abs(a-c);
    if(aa==x){
        if((bb==y&&cc==z)||(bb==z&&cc==y))
            return true;
    }
    if(aa==y){
        if((bb==x&&cc==z)||(bb==z&&cc==x))
            return true;
    }
    if(aa==z){
        if((bb==y&&cc==x)||(bb==x&&cc==y))
            return true;
    }
    return false;
}
int isvanish(string s, int x, int y, int z)
{
    int count[3]={0};
    int c, i;
    for(i=0; i<s.size(); i++)
    {
        if(s[i]==‘R‘) c=0;
        else if(s[i]==‘Y‘) c=1;
        else if(s[i]==‘B‘) c=2;
        count[c]++;
        if(isvanish(x, y, z, count[0], count[1], count[2]))
            return i+1;
    }
    return 0;
}
int longest(int vanish, int leftball)
{
    return vanish>leftball?vanish:leftball;
}

【总结】

要学会把功能分开实现,不要总是整体考虑。

一部分一部分按步骤实现,有助于快速有效地A题。

时间: 2024-08-28 04:58:45

hihocoder——微软在线笔试T1的相关文章

Python在线笔试琐碎

这篇博客记录一下在线笔试用Python写算法题时需要注意的一些事项. 处理输入 一些大公司的在线笔试似乎都承包给了第三方,那个平台下的在线写代码功能真是不能再渣.它并不像LeetCode以及其他OJ一样给定函数声明和函数头部,而是需要你自己去处理输入. 首先,Python下的输入基本都为字符串,在单行输入模式下,对于有混杂数字,字符的情况下,我们可以用raw_input()函数来接受处理. # 输入:{1, 2, 3},23 s = raw_input() 1 2 3 此时s保存就是整个输入,之

2015年9月百度前端在线笔试

我的空间www.cumt.top 刚结束百度前端的在线笔试,感觉被虐了 一道系统题,三道编程题,js写的云里雾里 第一道系统题:写出资源管理器的数据结构,和功能接口 想了好一会儿,决定数据结构用json来写 { "root":[{ "name":"aaa", "hasChildren":1, "children":[{ "name":"asf"; "hasC

阿里客户端在线笔试

2015.4.2 刚刚进行了阿里的在线笔试,虽然是客户端的岗位,但是前面的题好像都没有和“我以为和客户端相关”的题,各种“当时我就懵逼了”.果然是阿里. 这样子也知道了自己的差距,我觉得考PAT靠谱多了,求今年六月份能去考PAT,fighting.(只能这样安慰自己了) 选择题: 1.<国王和天使>的游戏,每个人把自己的名字写在纸条上并且丢入盒子中,等所有人完成后,每个人再从盒子里抽一张小纸条,上面的人物就是自己的国王,自己就是ta的天使. 如果抽到自己就重抽,直到抽到别人为止.然后大家为小纸

阿里在线笔试总结

今年阿里校招首次使用线上笔试,20道单选(40mins)+3道附加题(80mins),一共2个小时. 20道单选包括由于网络协议.操作系统.C++.数学逻辑题.数据结构和算法几个方面的题,其中数学和逻辑题占的比重最大,其次是C++和数据结构.算法.时间还是很紧张的. 3道大题是:二叉树遍历.最长公共字串.java中sleep()和wait()区别: 对于单选题,有下面一些教训: 在线笔试虽然方便,但是为了减少作弊(肯定有,比如多个人一起帮忙做),时间肯定会紧张,这样没有时间查资料. 而且,我在这

2016校招之360在线笔试

刚刚参加了奇虎360的2016校招在线笔试,记录一下. 填空题:40题 编程题 :2题 考试时间:150分钟 博主投的是C/C++后台开发 填空题具体不记得了,只是涉及面很广,包括python,php,操作系统,C/C++,数学概率,数据结构与算法,数据库,正则表达式,设计模式等等 编程题: 1.找一个合适的人当村长,意思是:一个村子里选村长,这个村长必须满足以下条件: (1) 他除了自己,不认识村子里的其他人(默认每个人都认识他自己) (2) 村子里的其他人都认识他 村子里的每个人从1~N编号

2015阿里巴巴前端实习生在线笔试考后总结

写在前面 还是太年轻,第一次在线笔试有些紧张了 一.2015题目 我遇到的题目:6个选择其中3个多选,1个填空,6个大题.客服姐姐说题目是随机给的(因为给了一个时段考试,而不是统一时间点开考),不过题型应该是固定的. 单选:一个数组,两个引用,相互赋值,问输出 眩晕抗性-30% 单选:问一个return匿名函数的函数的执行结果,内部还有apply 眩晕抗性再-69% 单选:问字符串替换结果是什么,当然,又是套了几层,绕了几圈 眩晕抗性再-1%,嗯,做完这道给彻底绕晕了 多选:移动端,如果A按钮上

Win Server 8中的利器:微软在线备份服务

微软在Windows Server 8中添加在线备份服务了?你一定以为我在开玩笑,是吧?但是微软确实这么做了. 微软在Windows Server 8中添加在线备份服务了?你一定以为我在开玩笑,是吧?但是微软确实这么做了. 微软在线备份服务是Windows Server 8测试版专用的一个可安装服务,它允许到云服务的文件和文件夹备份. 这从根本上说是一个离线备份解决方案,向使用微软在线备份服务的云中备份.它为Windows Server 8机器提供文件及文件夹备份功能. 它不能备份系统状态.成功

Windows10微软在线账户与本地账户的切换方法

Win10里面存在着两个账户,除了本地账户外,还有着一个微软在线账户,这个账户可以同步设置.日历等数据.不过对于大部分用户来说,本地账户已经足够我们使用了,那么这两个账户之间该如何切换呢? Win10本地/在线账户切换步骤 1.依次点击:开始按钮>所有应用>电脑设置. 2.在电脑设置界面依次点击:用户和账户>你的个人资料>断开连接. 3.输入微软在线账户的密码,点击下一步. 4.输入用户名.密码(可以不输).密码提示(设置了密码就必须填),然后点击下一步. 5.最后一步点击“注销并

阿里在线笔试算法工程师附加题

前几天参加了阿里的在线笔试,报的职位是算法工程师,笔试感觉难度适中,选择题包含数据结构.离散数学.小的智力问题还有一些读程序选结果的题目.其中数据结构和排列组合最多.当时比较慌乱,没做记录.只记下了三个附加题. 第一题很简单.要求实现一个方法,在两个排好序(升序)的整型数组中找到中位数.传入4个参数,分别是两个数组和他们的大小.这个题目既然简单就要写的高效一些.我用的归并排序的思想,将两个数组合并,在合并的过程中找到中位数.并对奇偶分情况讨论,注意偶数情况下有可能出现小数.代码如下: doubl