刚刚收到卖力的OA
package salesforce;
public class encode {
public static void main(String[] args) {
String s1 = "aaa";
String s2 = "baaaxxxxxx";
System.out.println(encode(s1));
System.out.println(encode(s2));
}
public static String encode(String input) {
final int n = input.length();
StringBuilder result = new StringBuilder();
int count = 1;
for (int i = 1; i < n; i++) {
if (input.charAt(i) == input.charAt(i - 1)) {
count++;
} else {
String target = findLetter(input.charAt(i - 1));
result.append(target);
if (count > 1) {
result.append("(" + count + ")");
}
count = 1;
}
}
result.append(findLetter(input.charAt(n - 1)));
if (count > 1) {
result.append("(" + count + ")");
}
return result.toString();
}
public static String findLetter(char c) {
int cnt = c - 'a';
if (cnt >= 0 && cnt < 9) {
return Integer.toString(cnt + 1);
}
if (cnt >= 9 && cnt < 26) {
return Integer.toString(cnt + 1) + '#';
}
return "";
}
}
#!/bin/python3
import math
import os
import random
import re
import sys
# Complete the sExpression function below.
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
def sExpression(nodes):
print(nodes)
error = []
aj = {}
nodes = nodes.split(' ')
for ele in nodes:
start, end = ele[1], ele[3]
if start not in aj:
aj[start] = [end]
else:
for cur in aj[start]:
if end == cur:
return 'E2'
aj[start].append(end)
if len(aj[start]) > 2:
return 'E1'
print(aj)
visited = set()
head_set = {}
for key, child in aj.items():
child.sort()
for key, child in aj.items():
# print(key, child)
if key not in visited:
pass_by = set()
node = TreeNode(key)
if not dfs(key, visited, aj, pass_by, node, head_set, error):
print(error)
return error[0]
head_set[key] = node
# print(head_set)
if len(head_set) > 1:
return 'E4'
else:
head = [ele for ele in head_set.values()][0]
stack = []
stack.append(head)
return dfs_tree(head)
def dfs_tree(root):
if not root:
return ''
else:
left = dfs_tree(root.left)
right = dfs_tree(root.right)
return '(' + str(root.val) + left + right + ')'
def dfs(cur, visited, aj, pass_by, node, head_set, error):
if node.val in pass_by: # E3
error.append('E3')
print('3', error)
return False
elif node.val in head_set:
del head_set[node.val]
return True
pass_by.add(node.val)
if node.val in aj:
for child in aj[node.val]:
if child in head_set:
new = head_set[child]
elif child in visited:
error.append('E3')
print('2', error)
return False
else:
new = TreeNode(child)
if not node.left:
node.left = new
elif not node.right:
node.right = new
else:
error.append('E1')
print('1', error)
return False
if not dfs(child, visited, aj, pass_by, new, head_set, error):
print('10', error)
return False
visited.add(node.val)
return True
if __name__ == '__main__':