当前位置:   article > 正文

科大讯飞笔试题复盘_讯飞后端社招笔试

讯飞后端社招笔试

第一题:给一个字符串,其中有不定数量空格相隔的一些单词,计算包含字符 e 的单词个数;

这个比较简单,不列题解了;

第二题,给定四点,计算对应的凸四边形面积,点为给定的结构体;

没写出来:这个基本考数学公式,不知道就做不出来,没有参考价值,不去复盘这个了;

第三题,给定一个字符串,求解字符串子序列中 iflytek 的个数

这个也没写出来,g了,回溯模板都写不对了!!!

backtracking(str, i + 1); 不是backtracking(startIndex + 1);

暴力回溯:

  1. #include <iostream>
  2. using namespace std;
  3. string target = "iflytek";
  4. string path;
  5. int res = 0;
  6. bool isPath(string& path) {
  7. for (int i = 0; i < path.size(); ++i) {
  8. if (path[i] != target[i]) return false;
  9. }
  10. return true;
  11. }
  12. void backtracking(const string& str, int startIndex) {
  13. if (!isPath(path)) return;
  14. if (path == target) {
  15. res++;
  16. return;
  17. }
  18. for (int i = startIndex; i < str.size(); ++i) {
  19. path.push_back(str[i]);
  20. backtracking(str, i + 1);
  21. path.pop_back();
  22. }
  23. }
  24. int findiflytek(string& str) {
  25. backtracking(str, 0);
  26. return res;
  27. }
  28. int main() {
  29. string str = "iflytekiflytek";
  30. cout << findiflytek(str) << endl;
  31. return 0;
  32. }

动态规划解法:待看!

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号