您的代码具有O(n)时间复杂度,我认为这对于这个问题来说是最快的。但是您没有利用StringBuilder,而是使用耗时的字符串连接。这是优化后的版本:public static void main(String[] args) throws IOException { BufferedReader bi = new BufferedReader(new InputStreamReader(System.in)); String line = bi.readLine(); String[] input = line.split(" "); StringBuilder builder = new StringBuilder(); Stack<String> stack = new Stack<String>(); for(String e:input) { switch(e) { case("+"): case("-"): case("*"): case("/"): String i = stack.pop(); String k = stack.pop(); builder.setLength(0); builder.append("("); builder.append(k).append(e).append(i); builder.append(")"); stack.push(builder.toString()); break; default: stack.push(e); } } System.out.println(stack.pop()); }
1 回答
明月笑刀无情
TA贡献1828条经验 获得超4个赞
你需要做这样的事情:
Cursor cursor = db.rawQuery(...);
try {
while (cursor.moveToNext()) {
//Here you have to add the item in your array list
}
} finally {
cursor.close();
}
添加回答
举报
0/150
提交
取消