0806晚 科大讯飞笔试

#科大讯飞笔试
选择题:
一些基础知识和概率题偏多
编程:
1、统计一个字符串中含e(不区分大小写)的单词的个数
2、计算四边形(不一定规则)的面积,四舍五入
3、计算字符串中“iflytek”的序列种数

题解思路:
1、先转成字符串数组,碰到字母,把出现单词的flag记为true,碰到e,把出现e的flag计为true,碰到空格,出现单词、出现e的flag都为true,数量++,最后一个单词会统计不到,返回前再判断一次
2、分成两个三角形,使用交叉相乘计算面,注意四舍五入的坑,返回的是long值
3,dfs暴搜

评论欢迎交流#笔经##科大讯飞笔试是种什么体验#
全部评论
第三题用了七个for循环通过了😂
3 回复 分享
发布于 2022-08-07 00:34
第二题你们咋做的,一直卡33,是精度问题吗
2 回复 分享
发布于 2022-08-06 21:17
第二题 外积公式算两个三角形面积 第三题leetcode115原题
2 回复 分享
发布于 2022-08-06 21:09
dfs可以ac吗 看了一下是leetcode115原题
2 回复 分享
发布于 2022-08-06 21:07
3、     char[] target = {'i&(30302)#39;,'f&#39;,'l&(30304)#39;,'y&#39;,'t&(30306)#39;,'e&#39;,'k&(30307)#39;};     int count = 0;     public int findIflytek (String str) {         // write code here         char[] chars = str.toCharArray();         dfs(chars, 0, target.length, 0);         return count;     }     public void dfs(char[] chars, int k, int len, int cur){         if (len == k){             count++;             return;         }         for (int i = cur; i < chars.length; i++){             if (chars[i] == target[k]){                 dfs(chars, k + 1, len, i + 1);             }         }     }
1 回复 分享
发布于 2022-08-06 21:43
2、 public long getArea (Point p1, Point p2, Point p3, Point p4) {         // write code here         double ans = getTriangleArea(p1, p3, p2) + getTriangleArea(p4, p3, p1);         long l = (long) ans;         if (ans < l + 0.5) return l;         return l + 1;     }     public double getTriangleArea(Point p1, Point p2, Point p3){         Point p12 = new Point(p2.x - p1.x, p2.y - p1.y);         Point p13 = new Point(p3.x - p1.x, p3.y - p1.y);         return Math.abs(p12.x * p13.y - p12.y * p13.x)/2.0;     }
1 回复 分享
发布于 2022-08-06 21:43
第二题做了一个小时,然而依旧没做出来😓
1 回复 分享
发布于 2022-08-06 21:11
str.contain('e')//str.contain('E')
1 回复 分享
发布于 2022-08-06 21:10
请问投的哪个岗位呢?
点赞 回复 分享
发布于 2022-09-01 14:04 湖北
笔试出结果了吗?
点赞 回复 分享
发布于 2022-08-13 09:57
科大讯飞内推码:85Y512Z 【内推链接】https://campus.iflytek.com/official-pc#/home?refrenceCode=85Y512Z
点赞 回复 分享
发布于 2022-08-07 13:20
1、 public int findEwordCount (String string) {         // write code here         char[] chars = string.toCharArray();         int ans = 0;         boolean flag = false, start = false;         for (int i = 0; i < chars.length; i++){             if (chars[i] == ' &(30184)#39;){                 if (flag && start) ans++;                 flag = false;                 start = false;             }else {                 start = true;                 if (chars[i] == 'e&(30300)#39; || chars[i] == 'E&#39;) flag = true;             }         }         if (start && flag) ans++;         return ans;     }
点赞 回复 分享
发布于 2022-08-06 21:43
只会做第一个
点赞 回复 分享
发布于 2022-08-06 21:40
选择有多选吗大佬们
点赞 回复 分享
发布于 2022-08-06 21:33
兄弟第二题代码能发一份吗,我不知道我哪错了
点赞 回复 分享
发布于 2022-08-06 21:07
哈哈哈哈哈,第三题推荐用dp
点赞 回复 分享
发布于 2022-08-06 21:07
为什么第三题dfs一直超时啊
点赞 回复 分享
发布于 2022-08-06 21:06

相关推荐

评论
4
32
分享

创作者周榜

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