全部评论
这个题要求逆序输出,leetcode没这个要求。 没考虑到逆序的肯定都是0,大家试试这个用例 huawei2(Test3[2{2(test)AA}]xy)z 注意逆序输出
他是整个展开再翻转一次。递归展开即可。我ac了这题
# 第二题,我是用栈做的。。。。
import java.util.Scanner;
import java.util.Stack;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
Stack<Character> st = new Stack<>();
char[] ch = s.toCharArray();
for(int i=0;i<ch.length;i++) {
if(ch[i] == ')' || ch[i]==']' || ch[i] == '}') {
StringBuilder sb = new StringBuilder();
while(st.peek() != '(' && st.peek()!='[' && st.peek()!='{') {
char c = st.pop();
sb.append(c);
}
st.pop();
int count = Integer.parseInt(st.pop().toString());
for(int k=0;k<count;k++) {
for(int j=sb.length()-1;j>=0;j--) {
st.push(sb.charAt(j));
}
}
}
else {
st.push(ch[i]);
}
}
StringBuilder sb1 = new StringBuilder();
while(!st.isEmpty())
sb1.append(st.pop());
System.out.println(sb1.toString());
}
}
就过了第一题 好菜啊。。。。。
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
String s = in.nextLine();
StringBuilder sb = new StringBuilder();
helper(s, sb);
System.out.println(sb.toString());
}
}
private static void helper(String s, StringBuilder sb) {
int len = s.length();
int i = 0;
while (i < len && !(s.charAt(i) >= '0' && s.charAt(i) <= '9')) {
sb.insert(0, s.charAt(i));
i++;
}
if (i < len) {
int n = 0;
while (s.charAt(i) >= '0' && s.charAt(i) <= '9') {
n = 10 * n + s.charAt(i) - '0';
i++;
}
int t = i + 1;
int sum = 1;
while (sum != 0) {
if (s.charAt(t) == '(' || s.charAt(t) == '[' || s.charAt(t) == '{') {
sum += 1;
}
if (s.charAt(t) == ')' || s.charAt(t) == ']' || s.charAt(t) == '}') {
sum -= 1;
}
t++;
}
for (int p = 0; p < n; p++) {
helper(s.substring(i + 1, t - 1), sb);
}
if (t < s.length()) {
helper(s.substring(t), sb);
}
}
}
华为笔试和拼多多面试冲突,我只写了一会,第二题其实马上就能调出来了
上面我测试了一下我能想到的测试用例都是对的。
为什么有的人就100%过了,那说明人家系统没问题,还是你代码有问题,
题目上有提到中括号和大括号这两个词吗?想搞清楚是因为我没读题还是题没说清楚。
我的也是,做的时候没有考虑括号的嵌套
我的天 我一直以为和数***算一样,小括号和中括号优先级不一样。。。
可以确定是中括号和大括号的问题了。凉凉
我也调了很久,发现是中括号和大括号的问题
import sys if __name__ == "__main__": # 读取第一行的n line = sys.stdin.readline().strip() # 把每一行的数字分隔后转化成int列表 data = list(map(str, line.split())) #data=list(input().split()) new_data=[] if len(data)==1: print(0) for i in range(1,len(data)): #有几组8位数 m=int(len(data[i])/8) #还剩几位数 n=int(len(data[i])%8) if m>=1 and n>=1: for j in range(m): new_data.append(''.join(sorted(data[i][8*j:8*j+8]))) new_data.append(''.join(sorted(data[i][-n:]))+'0'*(8-n)) elif m>=1: for j in range(m): new_data.append(''.join(sorted(data[i][8*j:8*j+8]))) elif n>=1: new_data.append(''.join(sorted(data[i][-n:]))+'0'*(8-n)) new=sorted(new_data) for i in new: print(i) 大家能帮我看一下我的这段代码出错在哪里了吗?心里好郁闷,一直不能通过,是不是最后输出格式有问题啊
2.9091 https://www.nowcoder.com/discuss/175998?type=0&order=0&pos=6&page=0
不懂,在本地通过了,上机就是0%。。。
我也是啊,我想了半天可能不对的情况,比如:括号里嵌套多个括号;数字不止一位;倒序是指从后往前,括号的正常扩展,其他的倒序;还有输入为空。我全都改过了,全试了,测试什么问题没有,但是就是通过0%,我有什么还没想到的么?
想知道第一题怎么做……我不管怎么做都只有40% case通过……哭了
最后一题地图的动态规划怎么做啊,我dfs超时只过了68%
加1,
我也是,然而我知道自己错了,我刚开始想得简单了,没有考虑到嵌套的问题,后来想一想可能要用递归什么的。哎!凉凉了
最后一题有么有一直百分之四十五的 感觉就dfs就行,也没啥坑啊...
相关推荐
06-27 15:29
门头沟学院 Java 
点赞 评论 收藏
分享
点赞 评论 收藏
分享
编程界菜鸡:逆天,真有住公司的?

点赞 评论 收藏
分享