class Solution {
public List<String> commonChars(String[] A) {
List<String> result = new ArrayList<String>();
Map<Character, Integer> m = new HashMap<Character, Integer>();
for (int i = 0; i < A[0].length(); i++) {
m.put(A[0].charAt(i), m.getOrDefault(A[0].charAt(i), 0) + 1);
}
for (int j = 1; j < A.length; j++) {
Map<Character, Integer> compare = new HashMap<Character, Integer>();
String s = A[j];
for (int k = 0; k < s.length(); k++) {
char c = s.charAt(k);
if (m.containsKey(c)) {
compare.put(c, Math.min(m.get(c), compare.getOrDefault(c, 0) + 1));
}
}
m = compare;
}
for (Character k : m.keySet()) {
for (int l = 0; l < m.get(k); l++) {
result.add(k.toString());
}
}
return result;
}
}
Runtime: 12 ms, faster than 24.91% of Java online submissions for Find Common Characters.
Memory Usage: 38.9 MB, less than 88.96% of Java online submissions for Find Common Characters.
어김없이 돌아온 내 사랑 쉬맵이~
쉬맵이를 2개 만들어 줘서 살아남는 놈들만 다음 스테이지로 넘겼읍니다~
원래는 갯수 하나하나 다 빼고 비교하고 했는데 Math.min을 넣어놓고 나의 성공시대 시작되었읍니다~~
그거 말고는 진짜 단순한듯..^^
Python 루션이
class Solution:
def commonChars(self, A):
res = collections.Counter(A[0])
for a in A:
res &= collections.Counter(a)
return list(res.elements())
Runtime: 48 ms, faster than 67.90% of Python3 online submissions for Find Common Characters.
Memory Usage: 14.1 MB, less than 95.21% of Python3 online submissions for Find Common Characters.
루션이가 세상을 구한다..^^
Java 루션이
class Solution {
public List<String> commonChars(String[] A) {
int[] last = count(A[0]);
for (int i = 1; i < A.length; i++) {
last = intersection(last, count(A[i]));
}
List<String> arr = new ArrayList<>();
for (int i = 0; i < 26; i++) {
if (last[i] != 0) {
char a = 'a';
a += i;
String s = String.valueOf(a);
while (last[i] > 0) {
arr.add(s);
last[i]--;
}
}
}
return arr;
}
int[] intersection(int[] a, int[] b) {
int[] t = new int[26];
for (int i = 0; i < 26; i++) {
t[i] = Math.min(a[i], b[i]);
}
return t;
}
int[] count(String str) {
int[] t = new int[26];
for (char c : str.toCharArray()) t[c - 'a']++;
return t;
}
}
Runtime: 1 ms, faster than 100.00% of Java online submissions for Find Common Characters.
Memory Usage: 39.2 MB, less than 40.99% of Java online submissions for Find Common Characters.
가끔은 쉬맵이를 버리고 dp 같은거도 좀 써야겠읍니다..^^
이게 100%네요
class Solution {
public int balancedStringSplit(String s) {
//같을 동안 count up
int result = 0;
int n = 1;
char prev = s.charAt(0);
for (int i = 1; i < s.length(); i++) {
if (s.charAt(i) == prev) {
n++;
} else {
n--;
}
if (n == 0) {
result++;
prev = s.charAt(i);
}
}
return result;
}
}
Runtime: 0 ms, faster than 100.00% of Java online submissions for Split a String in Balanced Strings.
Memory Usage: 36.6 MB, less than 77.82% of Java online submissions for Split a String in Balanced Strings.
R이든 L이든 처음 시작하는 것과 같음 더하고 다름 뺍니다
만약에 중간에 0이 되는 순간이 있음 앞뒤가 같을 타이밍이니 result 값을 1개씩 올려줍니다
이 코드가 만약에 앞뒤가 같은 String을 잡아내라고 했음 안됐겠지만 다행히 갯수만 물어봐서 + - 로 해결할 수 있읍니다~!
지금 루션이 보는데 저와 비슷하게 푼 사람은 없는 것 같은데 한번 올려볼까요..^^