第一題 有效的括號
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;
}
希望雷神給個面試機會吧,許願許願~