华为笔式第三题

第三题为什么总是62.5%通过,你们有AC的吗?

全部评论
请考虑负数情况,已AC
点赞 回复 分享
发布于 2017-08-23 21:04
第三题,考虑负数,考虑首0 import java.util.*; public class Main { public static void main(String[] args) { Scanner cin = new Scanner(System.in); Map<Character, Integer> toNum = new HashMap<>(); Map<Integer, Character> toChar = new HashMap<>(); for (int i = 0; i < 10; ++i) { char c = (char) ('0' + i); toNum.put(c, i); toChar.put(i, c); } for (int i = 0; i < 26; ++i) { char c = (char) ('a' + i); toNum.put(c, i + 10); toChar.put(i + 10, c); } for (int i = 0; i < 26; ++i) { char c = (char) ('A' + i); toNum.put(c, i + 36); toChar.put(i + 36, c); } while (cin.hasNextInt()) { int src = cin.nextInt(), dst = cin.nextInt(); char[] s = cin.next().toCharArray(); if (s.length == 1 && s[0] == '0') { System.out.println("0"); continue; } boolean neg = false; if (s[0] == '-') { neg = true; } int sum = 0, i = 0; if (neg) { i = 1; } for (; i < s.length; ++i) { sum *= src; sum += toNum.get(s[i]); } LinkedList<Character> stack = new LinkedList<>(); while (sum > 0) { int t = sum % dst; sum /= dst; char c = toChar.get(t); stack.addLast(c); } if (neg) { System.out.print("-"); } while (!stack.isEmpty() && stack.getLast() == '0') { stack.removeLast(); } while (!stack.isEmpty()) { System.out.print(stack.removeLast()); } System.out.println(); } } }
点赞 回复 分享
发布于 2017-08-23 21:16
第一个会有负号,把负号去掉转换之后加上负号AC
点赞 回复 分享
发布于 2017-08-23 21:06
同62.5%
点赞 回复 分享
发布于 2017-08-23 21:47
第二题60%的   是你们题目意思 没理解对 注意  对于没有重复的数字 不能改变其在原数字串中的相对位置  题目要你做的 是判断删除哪个重复的数字 因为重复的数字有很多个
点赞 回复 分享
发布于 2017-08-23 21:13
题目是什么?
点赞 回复 分享
发布于 2017-08-23 21:13
请问楼主第二题有什么特殊情况,我的通过率只有60%,感觉没什么特殊情况啊,我以前没怎么碰过这种编程题目
点赞 回复 分享
发布于 2017-08-23 21:11
百分之60可以给分吗
点赞 回复 分享
发布于 2017-08-23 21:11
妈的 没考虑负数  日了
点赞 回复 分享
发布于 2017-08-23 21:10
考虑了负数,还是62.5,好郁闷
点赞 回复 分享
发布于 2017-08-23 21:04
通过率 16.5%
点赞 回复 分享
发布于 2017-08-23 21:04
同问 。。有什么更简便的方法吗
点赞 回复 分享
发布于 2017-08-23 21:03
同问
点赞 回复 分享
发布于 2017-08-23 21:02

相关推荐

07-28 16:15
门头沟学院 Java
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-30 11:32
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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