京东安全岗笔试编程

京东的安全岗的编程题:最优打印策略。有人ac吗??学习一下#京东##笔试题目#
全部评论
import java.util.Scanner; public class Main {     private static final int LOWER_CASE = 1;     private static final int UPPER_CASE = -1;     public static void main(String[] args) {         Scanner scanner = new Scanner(System.in);         int n = Integer.parseInt(scanner.nextLine());         String text = scanner.nextLine();         scanner.close();         int curr = LOWER_CASE;         int count = 0;         for (int i = 0; i < text.length(); i++) {             char ch = text.charAt(i);             if (curr == LOWER_CASE && isLower(ch)) {                 count += 1;             } else if (curr == UPPER_CASE && !isLower(ch)) {                 count += 1;             } else {                 count += 2;                 if (i != text.length() - 1) {                     char next = text.charAt(i + 1);                     if (isLower(next) && isLower(ch)) {                         curr *= -1;                     } else if(!isLower(next) && !isLower(ch)){                         curr *= -1;                     }                 }             }         }         System.out.println(count);     }     private static boolean isLower(char ch) {         return ch >= 'a' && ch <= 'z';     } }
点赞 回复 分享
发布于 2019-08-24 22:13
一个true跟false写反了,一直0 ac,愣是没检查出来,我可能是个瞎子
点赞 回复 分享
发布于 2019-08-24 20:19
AC200% https://www.nowcoder.com/discuss/232706
点赞 回复 分享
发布于 2019-08-25 01:27
import sys    n = int(input()) S = str(input()) S_list = list(S)    lower_s = [chr(i) for i in range(97, 123)] upper_s = [chr(i) for i in range(65, 91)]    num = 0 u_bool = False  # True:当前输入法为大写 for i,s in enumerate(list(S_list)):     if s in lower_s:         if not u_bool:             num += 1           # 如果当前输入法为小写,输入一次字母         elif i < len(S_list) - 1:             if S_list[i + 1] in lower_s :                 num += 2       # 一次capslock,一次当前字母                 u_bool = False # 输入法切换为小写             else:                 num += 2       # 一次shift,一次当前字母         else:             num += 2           # 最后一个字母,不再检测下一个s        if s in upper_s:         if u_bool:             num += 1         elif i < len(S_list) - 1:             if S_list[i + 1] in upper_s:                 num += 2                 u_bool = True             else:                 num += 2         else:             num += 2 sys.stdout.write(str(num))
点赞 回复 分享
发布于 2019-08-25 01:24
每串连续一样的算一组,按贪心的策略进行下去即可,因为当shift和lock方式按键数量一样时,一定是选择shift
点赞 回复 分享
发布于 2019-08-24 22:53
package main import ( "fmt" ) func main() { var n int fmt.Scan(&n) var str string fmt.Scan(&str) is_capslocks := false count := 0 Rune := []rune(str) for i := 0; i < n; i++ { if Rune[i] >= 'A' && Rune[i] <= 'Z' { if is_capslocks == true { count++ } else { if Rune[i+1] >= 'A' && Rune[i+1] <= 'Z' { is_capslocks = !is_capslocks } count += 2 } } else { if is_capslocks == false { count++ } else { if Rune[i+1] >= 'a' && Rune[i+1] <= 'z' { is_capslocks = !is_capslocks } count += 2 } } } fmt.Println(count) }
点赞 回复 分享
发布于 2019-08-24 21:03
贪心法可以,100%ac
点赞 回复 分享
发布于 2019-08-24 21:02
27。zz
点赞 回复 分享
发布于 2019-08-24 20:20
36 一交卷就知道错哪儿了😤
点赞 回复 分享
发布于 2019-08-24 20:17
shift咋考虑的呀 
点赞 回复 分享
发布于 2019-08-24 20:12
放弃
点赞 回复 分享
发布于 2019-08-24 20:09
0,我太难了
点赞 回复 分享
发布于 2019-08-24 20:08
18%不知道为啥。。。
点赞 回复 分享
发布于 2019-08-24 20:05

相关推荐

来个大佬救一下,为上投了都是石沉大海了,没实习经历的话怕秋招直接进不了面。什么实习这么难找,基本
心态爆炸了:现在正式的岗位都少,实习基本不咋招的,除了大厂,中小企业其实没那么多岗位需求,就算是有,大多都是招一两个廉价劳动力,同时,他们也会希望你一来就能干活的,没时间培训你,就让你了解公司的项目,你了解完就可以开始干活。再者是,很多低质量的实习其实用处没有那么大的。我去年也是找实习找到破防,最后去了一家深圳的小公司实习,工作对我来说很简单,甚至不如我在学校做的项目,秋招的时候,这段实习经历也并没有帮上什么忙,投递简历,依旧非常低的回复率。低回复率是常态,尤其是找实习,找不到,那就把重心放在优化自己的简历和项目,多看八股文,锻炼自己的面试能力,多看别人的面经,自己模拟面试,等秋招的时候,只要有那么寥寥几次,好好抓住那几次机会。
点赞 评论 收藏
分享
nus2201602...:兄弟,你这个简历撕了丢了吧,就是一坨,去找几个项目,理解项目流程,看几遍就是你的了,看看八股就去干了,多看看牛客里别人发出来的简历,对着写,你这写的啥啊,纯一坨
点赞 评论 收藏
分享
评论
1
6
分享

创作者周榜

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