中国电信软开秋招笔试——算法真题

时间:2024

1、我们认为一个数字是7好数,当且仅当它的开头和结尾都是7
给定一个正整数n,请问[1,n]中有多少个7好数
补充说明:函数输入一个整数n,返回7好数个数

2、 给定一个整数序列a以及两个整数x,k
求出有多少个区间[L,R](L<=R),使得该区间中恰好有k个ai(L<=i<=R),满足ai能被x整除
输入描述:一个整数序列,两个整数x,k
输出描述:满足条件的区间数量
全部评论

相关推荐

05-23 17:41
已编辑
西南交通大学 Java
面得最久的一次,一共一个半小时,java基础,jvm,集合,spring,mybatis,数据库,Linux,计网都有涉及下面是手撕题一开始是这道题/*重构字符串给定一个字符串&nbsp;s&nbsp;,检查是否能重新排布其中的字母,使得两相邻的字符不同。返回&nbsp;s&nbsp;的任意可能的重新排列。若不可行,返回空字符串&nbsp;&quot;&quot;&nbsp;。示例&nbsp;1:输入:&nbsp;s&nbsp;=&nbsp;&quot;aab&quot;输出:&nbsp;&quot;aba&quot;示例&nbsp;2:输入:&nbsp;s&nbsp;=&nbsp;&quot;aaab&quot;输出:&nbsp;&quot;&quot; 提示:1&nbsp;&lt;=&nbsp;s.length&nbsp;&lt;=&nbsp;500s&nbsp;只包含小写字母*/感觉短时间内写不出来,然后问面试官能不能换题,面试官换了一题之后才写出来的下面是换过的题/*公共字符按ASCII码升序输出所有符合要求的字符;&nbsp;如果没有符合要求的字符,则输出空列表[]。样例1输入:2&nbsp;[&quot;aabbccFFFFx2x2&quot;,&nbsp;&quot;aaccddFFFFx2x2&quot;,&nbsp;&quot;aabcdFFFFx2x2&quot;]输出:[&quot;2&quot;,&nbsp;&quot;F&quot;,&nbsp;&quot;a&quot;,&nbsp;&quot;x&quot;]解释:字符&nbsp;a&nbsp;在三个字符串中都出现&nbsp;2次,符合要求;字符&nbsp;b&nbsp;在第二三个字符串中分别出现&nbsp;0次、1次,不符合要求;字符&nbsp;c&nbsp;在第三个字符串中出现&nbsp;1次,不符合要求;字符&nbsp;d&nbsp;在第三个字符串中出现&nbsp;1次,不符合要求;字符&nbsp;F&nbsp;在三个字符串中都出现了&nbsp;4&nbsp;次,符合要求;字符&nbsp;x&nbsp;在三个字符串中都出现了&nbsp;2&nbsp;次,符合要求;字符&nbsp;2&nbsp;在三个字符串中都出现了&nbsp;2&nbsp;次,符合要求;因此字符&nbsp;a、F、x、2符合要求,按ASCII码升序输出&nbsp;*/代码实现public&nbsp;class&nbsp;Test&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;char[]&nbsp;commonChars(int&nbsp;count,&nbsp;List&lt;String&gt;&nbsp;strings)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int[][]&nbsp;counts&nbsp;=&nbsp;new&nbsp;int[strings.size()][128];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//记录每个字符出现的次数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;strings.size();&nbsp;i++)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;tmp&nbsp;=&nbsp;strings.get(i);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char[]&nbsp;charArray&nbsp;=&nbsp;tmp.toCharArray();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//记录当前字符串所有字符出现的次数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;j&nbsp;=&nbsp;0;&nbsp;j&nbsp;&lt;&nbsp;charArray.length;&nbsp;j++)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;counts[i][charArray[j]]++;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//定义变量记录符合条件的字符个数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;resCount&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&lt;Character&gt;&nbsp;res&nbsp;=&nbsp;new&nbsp;ArrayList&lt;&gt;();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;j&nbsp;=&nbsp;0;&nbsp;j&nbsp;&lt;&nbsp;128;&nbsp;j++)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//判断当前字符是否符合次数要求&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;state&nbsp;=&nbsp;true;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;strings.size();i++)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(counts[i][j]&nbsp;&lt;&nbsp;count)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;state&nbsp;=&nbsp;false;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(state)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resCount++;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;res.add((char)(j));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char[]&nbsp;resArr&nbsp;=&nbsp;new&nbsp;char[resCount];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;resCount;&nbsp;i++)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resArr[i]&nbsp;=&nbsp;res.get(i);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;resArr;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;k&nbsp;=&nbsp;2;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&lt;String&gt;&nbsp;strings&nbsp;=&nbsp;new&nbsp;ArrayList&lt;&gt;();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strings.add(&quot;aabbccFFFFx2x2&quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strings.add(&quot;aaccddFFFFx2x2&quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strings.add(&quot;aabcdFFFFx2x2&quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char[]&nbsp;res&nbsp;=&nbsp;commonChars(k,&nbsp;strings);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Arrays.sort(res);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(char&nbsp;c:res)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print(c&nbsp;+&nbsp;&quot;&nbsp;&quot;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;}}
华为一面193人在聊 查看2道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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