小米筆試(09-15)
阿新 • • 發佈:2020-09-15
第一題 有效的括號
leetcode原題,但我一直80%,後面發現是可以多行輸入的,猝。。。
public static void main(String[] args) { // TODO Auto-generated method stub // 定義輔助棧 Stack<Character> stack = new Stack<>(); Scanner scanner = new Scanner(System.in); // 需要處理為多行輸入輸出 String string = scanner.nextLine(); boolean flag = false; for(int i = 0; i < string.length(); i++) { if( string.charAt(i) == '(') stack.push(')'); else if( string.charAt(i) == '[') stack.push(']'); else if (string.charAt(i) == '{') { stack.push('}'); } else if (string.charAt(i) == ' '){ continue; } else if(stack.empty() || string.charAt(i) != stack.pop()) { flag = true; break; } } scanner.close(); if(!stack.empty() || flag) System.out.println("false"); else System.out.println("true"); }
第二題 去掉重複的字元,只保留第一個
簡單,使用HashMap搞定
package zr.xiaomi; import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String string = scanner.nextLine(); Map<Character, Integer> map = new HashMap<Character, Integer>(); for(int i = 0; i < string.length(); i++) { if(!map.containsKey(string.charAt(i))) { System.out.print(string.charAt(i)); map.put(string.charAt(i), 1); } } scanner.close(); } }
其實使用HashSet就行了,可能是HashMap用得太多,一上來就想到HashMap
package zr.xiaomi; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Scanner; import java.util.Set; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String string = scanner.nextLine(); Set<Character> set = new HashSet<>(); for(int i = 0; i < string.length(); i++) { if(!set.contains(string.charAt(i))) { System.out.print(string.charAt(i)); set.add(string.charAt(i)); } } scanner.close(); } }
其實C++裡面的list也可以搞定,更easy。
int main(int argc, char* argv[])
{
string s;
getchar();
getline(cin, s);
list<char> mylist;
for(int i = 0; i < s.size(); i++)
mylist.push_back(s[i]);
// 去重(從右邊開始,保留第一個)
mylist.unique();
for(auto it = mylist.begin(); it != mylist.end(); it++){
printf("%c", *it);
}
return 0;
}
希望雷神給個面試機會吧,許願許願~