转载链接:https://www.nowcoder.com/discuss/72829?type=0&order=0&pos=12&page=1

java实现参考: https://www.nowcoder.com/discuss/72849?type=2&order=0&pos=9&page=1

牛牛的括号匹配

分析

考虑如何判断一个串是否合法的过程:
依次处理字符,若是'('则入栈,若是')'则从栈中弹出一个'('. 若没有'('则不合法.
那么此题就是上述过程的变种,在处理过程中允许两次变换.可以只考虑')'->'('的方向.
1、如果当前是'(',直接入栈.
2、如果当前是')',如果栈非空,则弹出一个'('; 如果栈空就把当前的')'变成'('入栈. (标记最多只能变化一次).
用flag标记是否有将')'变为'('的操作. 结果栈要么为空,要么全是'('.

  1. 如果整个字串没有被处理完,那么肯定是"No".
  2. 如果flag=0, 那么要求没有'('剩下.
  3. 如果flag=1, 那么结果栈中的'('只能是两个. "((" -> "()".

时间复杂度

O(len(s))

参考代码

#include <bits/stdc++.h>using namespace std;const int maxn = 1e5 + 10;char str[maxn];
stack<char> s;int main() {int t;cin >> t;while(t--) {while(!s.empty()) s.pop();scanf("%s", str);int n = strlen(str);if(n == 2) {if(str[0] == '(' && str[1] == ')') {puts("No");continue;}}int i;int flag1 = 0;for(i = 0; i < n; i++) {if(str[i] == '(') {s.push('(');} else {if(!s.empty()) s.pop();else {if(flag1) break;flag1 = 1;s.push('(');}}}if(i == n) {if(!flag1) {if(s.empty()) puts("Yes");else puts("No");}else {if(s.size() != 2) puts("No");else puts("Yes");}}else puts("No");}return 0;
}

分解整数

分析

范围巨大。。
但是直觉上觉得可以很快出答案,
于是答案枚举一个数,判断另外一个数的合法性。
就跑过了。。

时间复杂度

O(跑得过)

参考代码

#include <bits/stdc++.h>int main() {int t;long long n, x, y;scanf("%d", &t);while(t--) {scanf("%lld", &n);if(n & 1)printf("No\n");else {for(y = 2; y <= n; y += 2) {if(n % y == 0 && ((n / y) & 1)) {x = n / y;break;}}printf("%lld %lld\n", x, y);}}return 0;
}

生成回文串

分析

dp[l][r]表示区间 [l, r] 内的回文串数目。
于是dp[l][r] = dp[l][r - 1] + dp[l + 1][r],
根据s[l] ?= s[r], 来看是+1还是减掉重复的部分。

时间复杂度

O(n^2)

参考代码

#include <bits/stdc++.h>using namespace std;
typedef long long LL;
const int maxn = 50 + 5;
LL dp[maxn][maxn];
char s[maxn];
int main() {scanf("%s", s + 1);int len = strlen(s + 1);memset (dp, 0, sizeof(dp));for(int i = 1; i <= len; i++) {for(int l = 1; l + i - 1 <= len; l++) {int r = l + i - 1;dp[l][r] += dp[l + 1][r];dp[l][r] += dp[l][r - 1];if (s[l] == s[r]) dp[l][r] += 1;else dp[l][r] -= dp[l + 1][r - 1];}}printf ("%lld\n", dp[1][len]);return 0;

京东2019春招编程题相关推荐

  1. 京东android面试题2019,京东2019春招编程题参考代码

    数内排序 分析 字符串读入,逆序排序即可. 时间复杂度 O(len(x)*log(len(x))) 参考代码 #include using namespace std; int main() { st ...

  2. 数据分析真题日刷 | 京东2019春招京东数据分析类试卷

    开启一个新的系列 -- 「数据分析真题日刷」.七月临近,备战秋招,加油鸭! 今日真题 京东2019春招京东数据分析类试卷(来源:牛客网) 题型 客观题:单选27道,不定项选择3道 完成时间 120分钟 ...

  3. 数据、运营相关试题(二)【牛客网:京东2019春招产品运营类试卷】

    试题来源:牛客网 试题答案仅供参考.其中前半部分偏向产品运营类试题,后半部分偏向综合测试类试题. 数据.运营相关内容,一起好好学习,天天向上吧! 数据.运营相关案例问答题(一)[牛客网:数据分析试题广 ...

  4. 京东2019春招Java开发类笔试题

    京东2019春招Java开发类笔试题 1. (单选题) 在对问题的解空间树进行搜索的方法中,一个结点有多次机会成为活结点的是 ( B ) A. 动态规划 B. 回溯法 C. 分支限界法 D. 回溯法和 ...

  5. 京东2018秋招编程题

    C++开发工程师 京东 2018秋招编程题 (代码后续更新...) 1.神奇数 将一个数n的各数位分成两部分,两部分之和相等,则称这个数为神奇数.比如242分成[2,2].[4].输入一个范围[l, ...

  6. 字节跳动2019春招算法题

    字节跳动2019春招算法题 1.总结 难度:容易到中等. 一些题出的太烂,不给数据范围,而且内存设置有问题,如果是刷题不建议刷. 2.题目 (1) 简单字符串模拟. #include<bits/ ...

  7. 数据、运营相关试题(一)【牛客网:京东2019春招商务与运营类试卷】

    试题来源:牛客网 试题答案仅供参考.其中前半部分偏向商务类试题,后半部分偏向运营类试题. 数据.运营相关内容,一起好好学习,天天向上吧! 数据.运营相关案例问答题(一)[牛客网:数据分析试题广场] 数 ...

  8. 京东2019春招算法工程师笔试题-牛牛下象棋(编程题3)

    这次京东2019的春招算法工程师笔试时间是2018-04-09 19:00~21:00,其中有三道编程题目,当时就做了2个,后一个时间原因就没做,就截了一个图,今天又突然看到了,练练手吧哈. 题目要求 ...

  9. 京东2019春招算法工程师笔试 题解 临时版

    前言 不想填坑,永久临时版←_← 这次的笔试编程题是我见过最水的...一着急20分钟就全解决了... 可惜商汤的编程赛比较坑...白让我这么着急做题 第一题 偶数素因数只有2,所以只需要把所有的2分配 ...

最新文章

  1. 举例分析private的作用【c/c++学习】
  2. python声明编码作用_Python源代码中的编码声明字符串的作用
  3. python获取windows窗口_Python实现遍历windows所有窗口并输出窗口标题的方法
  4. 网络相关配置,SSH服务,bash, 元字符
  5. Rank Math Pro v2.17.1 SEO插件
  6. 图标选择器_【小技巧】巧用CSS属性值正则匹配选择器
  7. java将url页面生成pdf_如何将PDF页面从横向改成纵向?
  8. 用python统计文章中单词出现的频次
  9. [转]UIViewController内存管理
  10. 我的世界之 paper和spigot 的区别 Java服务端开服
  11. Docker结合Consul实现的服务发现(一)
  12. ⭐图例结合超硬核讲解shiro⭐
  13. el vue 手机号_Vue+element-ui+axios实现登录注册接口(一)
  14. 网络安全——SQL注入漏洞
  15. uboot移植主要思路
  16. 嵌入式系统开发-麦子学院(11)——ARM Cortex A8 硬件基础(1)
  17. Shell脚本切换root用户或获取root权限
  18. Excel成神之道-001-数据分列
  19. lisp绘制法兰_lisp语言画键槽_用LISP语言自定义AutoCAD命令
  20. 郭炜-C语言程序设计-程序设计与算法(一)-第三周

热门文章

  1. 解决docker启动错误 error creating overlay mount to /var/lib/docker/overlay2
  2. 国庆活动征文 | 庆国庆,作几首打油诗在此
  3. 如何理解柯里化|函数式编程
  4. 拯救者进入BIOS模式
  5. ASA防火墙之透明模式的使用及配置
  6. centos7.2 下 ffmpeg交叉编译(安卓版x86_64)
  7. SQL 更新语句:Update ... set ... from ...
  8. MWC18丨中兴通讯联合GSMA举办5G峰会 迎接万物智联世界
  9. 山东二本计算机排名大学最新,山东二本大学排名最新
  10. Javascript Promise用法详解