房东妈妈总是劝身为无神论者的我去教会怎么办?

一亩三分地

 找回密码 注册账号

扫描二维码登录本站

最近看过此主题的会员


Total Comp Calculator
输入offer信息
系统自动计算每年收入

码农求职神器Triplebyte
不用海投
内推多家公司面试

动态规划专题以及
多门coding interview课程
给大家要到了额外20%折扣

科技公司如何
用数据分析驱动产品开发
coupon code: 20%off 打八折

深入浅出AB Test
从入门到精通
coupon code: 20%off 打八折
游戏初创公司招聘工程师、UIUX Designer和游戏策划
坐标湾区
DreamCraft创始团队
招聘游戏开发工程师
查看: 6841|回复: 29
收起左侧

Zenefits最近几道难题的解法

[复制链接] |试试Instant~
我的人缘0

分享帖子到朋友圈
kennethinsnow 发表于 2015-10-23 10:35:24 | 显示全部楼层 |阅读模式
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  93% (83)
 
 
6% (6)  踩

2015(7-9月) 码农类General 博士 全职@zenefits - 内推 - 技术电面 Onsite 在线笔试  | Other | 在职跳槽

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?注册账号

x
本人总结了一下最近zenefits面试中出现的难题
OA3
http://www.1point3acres.com/bbs/ ... ;highlight=zenefits
1. Longest Chain游客,本帖隐藏的内容需要积分高于 188 才可浏览,您当前积分为 0。
查看如何攒积分 Click here for more info.255)">
.鐣欏?璁哄潧-涓

评分

参与人数 7大米 +66 收起 理由
tonygxxx1212 + 10 感谢分享!
hercule24 + 5 感谢分享!
MCwong + 5 感谢分享!
Triston + 3 感谢分享!
lqzgz + 3 感谢分享!
whdawn + 20
K姐 + 20

查看全部评分


上一篇:新鲜的LiveRamp OA题目
下一篇:2015年10月22日 google MTV onsite

本帖被以下淘专辑推荐:

我的人缘0
 楼主| kennethinsnow 发表于 2015-10-23 11:09:16 | 显示全部楼层
本楼: 【顶】   100% (1)
 
 
0% (0)   【踩】
全局: 顶  93% (83)
 
 
6% (6)  踩
游客,本帖隐藏的内容需要积分高于 10 才可浏览,您当前积分为 0。
查看如何攒积分 Click here for more info.inary tree
  1. public class Solution1 {-baidu 1point3acres
  2.         class TreeNode{
  3.                 char value;
  4.                 TreeNode left;
  5.                 TreeNode right;
  6.                 TreeNode(char inp){
  7.                         this.value = inp;
  8.                 }
  9.         }
  10.         public String sExp(char[][] pair){
  11.                 // build an adj matrix row is the parent node, col is the child node
  12.                 int len = pair.length;
  13.                 if (len == 0) return "";
  14.                 int[][] adjMat = new int[26][26];
  15.                 int[] inNode = new int[26];        // count the incoming edges of each node. From 1point 3acres bbs
  16.                 int[] children = new int[26]; // count the number of children of each node
  17.                 Map<Character, TreeNode> nodes = new HashMap();
  18.                 TreeNode parent, child;
  19.                 UnionFind myUnion = new UnionFind(26);
  20.                 // build binary tree based on pair
  21.                 for (int i = 0; i < len; i++){
  22.                         int row = pair[i][0] - 'A';
  23.                         int col = pair[i][1] - 'A';
  24.                         if (children[row] == 2 && adjMat[row][col] != 1){
  25.                                 // more than 2 children but not the same edge
  26.                                 return "E1";
  27.                         }else if (adjMat[row][col] == 1){
  28.                                 // duplicated edges
  29.                                 return "E2";
  30.                         } else if (myUnion.connected(row, col)){
  31.                                 // if new link connect two that are already in same union there is loop
  32.                                 return "E3";
  33.                         }
  34.                         adjMat[row][col] = 1;
  35.                         children[row]++;
  36.                         inNode[col]++;-baidu 1point3acres
  37.                         myUnion.connect(row, col);
  38.                         connectNodes(pair, nodes, i);
  39.                 }
  40.                
  41.                 // check multiple roots
  42.                 int rNum = 0;
  43.                 TreeNode root = null;
  44.                 for (char x : nodes.keySet()){
  45.                         if (inNode[x - 'A'] == 0){
  46.                                 rNum++;
  47.                                 if (rNum > 1) return "E4";
  48.                                 root = nodes.get(x);
  49.                         }
  50.                 }
  51.                 if (root == null) return "E5";
  52.                
  53.                 // convert it to s-expression
  54.                 return toSExpression(root);
  55.         }
  56.        
  57.         // convert it to s-expression
  58.         String toSExpression(TreeNode root){
  59.                 if (root == null) return "";
  60.                 return "(" + root.value + toSExpression(root.left) + toSExpression(root.right) + ")";
  61.         }
  62.        
  63.         // connect parent and child node
  64.         private void connectNodes(char[][] pair, Map<Character, TreeNode> nodes,
  65.                         int i) {
  66.                 TreeNode parent;
  67.                 TreeNode child;
  68.                 if (nodes.containsKey(pair[i][0])) parent = nodes.get(pair[i][0]);. check 1point3acres for more.
  69.                 else{
  70.                         parent = new TreeNode(pair[i][0]);
  71.                         nodes.put(pair[i][0], parent);
  72.                 }
  73.                 if (nodes.containsKey(pair[i][1])) child = nodes.get(pair[i][1]);
  74.                 else{
  75.                         child = new TreeNode(pair[i][1]);
  76.                         nodes.put(pair[i][1], child);
  77.                 }
  78.                 if (parent.left == null) parent.left = child;
  79.                 else {
  80.                         if (parent.left.value < pair[i][1]){
  81.                                 parent.right = child;
  82.                         } else {
  83.                                 parent.right = parent.left;
  84.                                 parent.left = child;
  85.                         }
  86.                 }
  87.         }
  88.        
  89.         public static void main(String[] args){
  90.                 Solution1 sln = new Solution1();
  91.                 // (A(B(D(E(G))))(C(F)))
  92.                 // char[][] pair = {{'B', 'D'}, {'D', 'E'}, {'A', 'B'}, {'C', 'F'}, {'E', 'G'}, {'A', 'C'}};
  93.                 // E3
  94.                 // char[][] pair = {{'A', 'B'}, {'A', 'C'}, {'B', 'D'}, {'D', 'C'}};
  95.                 // (A(B(D)(G))(C(E(F))(H)))
  96.                 // char[][] pair = {{'A', 'B'}, {'A', 'C'}, {'B', 'G'}, {'C', 'H'}, {'E', 'F'}, {'B', 'D'}, {'C', 'E'}};
  97.                 // E1
  98.                 // char[][] pair = {{'A', 'B'}, {'A', 'C'}, {'B', 'D'}, {'A', 'E'}};
  99.                 // E2. 1point3acres
  100.                 // char[][] pair = {{'A', 'B'}, {'A', 'C'}, {'B', 'D'}, {'A', 'C'}};-baidu 1point3acres
  101.                 // E4
  102.                 char[][] pair = {{'A', 'B'}, {'A', 'C'}, {'B', 'G'}, {'C', 'H'}, {'E', 'F'}, {'B', 'D'}};
  103.                 System.out.println(sln.sExp(pair));
  104.         }
  105. }
复制代码
回复

使用道具 举报

我的人缘0
 楼主| kennethinsnow 发表于 2015-10-23 10:36:22 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  93% (83)
 
 
6% (6)  踩
[        DISC
游客,本帖隐藏的内容需要积分高于 10 才可浏览,您当前积分为 0。
查看如何攒积分 Click here for more info.
1        ]
回复

使用道具 举报

我的人缘0
 楼主| kennethinsnow 发表于 2015-10-23 10:38:36 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  93% (83)
 
 
6% (6)  踩
nqueen变形
棋盘上放queen 已经保证同一行或者同一列不会出现2个queen,求出对于每个Queen
游客,本帖隐藏的内容需要积分高于 10 才可浏览,您当前积分为 0。
查看如何攒积分 Click here for more info.
胁。
  1.         int maxThreats(int[] a) {
  2.         int len = a.length;
  3.         if (len == 0) return 0;
  4.         int[] threat = new int[len]; // max threats for queen in each row-baidu 1point3acres
  5.         Map<Integer, Integer> diag1 = new HashMap();
  6.         Map<Integer, Integer> diag2 = new HashMap();
  7.         for (int i = 0; i < len; i++){
  8.             int col = a[i] - 1;
  9.             if (diag1.containsKey(i - col)){
  10.                 threat[i]++;
  11.                 threat[diag1.get(i - col)]++;-baidu 1point3acres
  12.             }
  13.             diag1.put(i - col, i);
  14.             if (diag2.containsKey(i + col)){
  15.                 threat[i]++;
  16.                 threat[diag2.get(i + col)]++;
  17.             }
  18.             diag2.put(i + col, i);
  19.         }
  20.         int maxThreat = 0;
  21.         for (int i = 0; i < len; i++){
  22.             maxThreat = Math.max(maxThreat, threat[i]);
  23.         }
  24.         return maxThreat;
  25.     }
复制代码
回复

使用道具 举报

我的人缘0
 楼主| kennethinsnow 发表于 2015-10-23 10:43:13 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  93% (83)
 
 
6% (6)  踩
虫吃叶子 给定一个int作为叶子的数量,再给一个数组,其中每个数代表一个虫行走的步数, 求没有被吃掉的叶子
游客,本帖隐藏的内容需要积分高于 10 才可浏览,您当前积分为 0。
查看如何攒积分 Click here for more info.
了。
  1. int numberOfUneaten(int n, int[] p){
  2.                 // find non divisible numbers in p
  3.                 Arrays.sort(p);
  4.                 for (int i = 0; i < p.length; i++){
  5.                         for (int j = 0; j < i; j++){
  6.                                 if (p[j] != 0 && p[i] % p[j] == 0){
  7.                                         p[i] = 0;
  8.                                         break;
  9.                                 }
  10.                         }
  11.                 }
  12.                 // find lcm of numbers in p
  13.                 int l = 1;
  14.                 for (int i = 0; i < p.length; i++){
  15.                         if (p[i] != 0){
  16.                                 l = lcm(l, p[i]);
  17.                         }
  18.                 }
  19.                 int res = n % l;
  20.                 // find undivisible numbers from 1 to min(lcm, n)
  21.                 int[] mark = new int[Math.min(l, n) + 1];
  22.                 for (int i = 0; i < p.length; i++){
  23.                         if (p[i] != 0){
  24.                                 for (int j = p[i]; j <= Math.min(l, n); j += p[i]){
  25.                                         mark[j] = 1;
  26.                                 }
  27.                         }
  28.                 }
  29.                 int count = 0;
  30.                 int count1 = 0;
  31.                 for (int i = 1; i < Math.min(l, n); i++){
  32.                         if (mark[i] == 0){
  33.                                 count++;
  34.                                 if (i <= res) count1++;
  35.                         }
  36.                 }
  37.                
  38.                 // find undivisible numbers from 1 to n
  39.                 if (n < l) return count;
  40.                 else{
  41.                         return n / l * count + count1;
  42.                 }
  43.         }
  44.         int lcm(int a, int b){
  45.                 return a * b / gcd(a, b);
  46.         }
  47.         int gcd(int a, int b){
  48.                 if (a < b) return gcd(b, a);
  49.                 return b == 0 ? a : gcd(b, a % b);
  50.         }
复制代码
回复

使用道具 举报

我的人缘0
 楼主| kennethinsnow 发表于 2015-10-23 10:45:06 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  93% (83)
 
 
6% (6)  踩
机器人距离和最小问题
注意问题参见 游客,本帖隐藏的内容需要积分高于 10 才可浏览,您当前积分为 0。
查看如何攒积分 Click here for more info.1.html
  1. /*//problem: robot merge point
  2. //input:-baidu 1point3acres
  3. //robot: 1-baidu 1point3acres
  4. //obstacle: X
  5. [
  6. 0   0   0   M   1
  7. 0   1   X   0   0
  8. 0   X   0   0   0
  9. 0   0   0   1   0
  10. 0   0   0   0   0
  11. ]
  12. //output:
  13. //best merge point: M
  14. 3 + 1 + 3 = 7

  15. Definition: Best merge point: minimal sum of path num between robots and merge point*/
  16. public class Solution{-baidu 1point3acres
  17.         class Point{
  18.                 int x;
  19.                 int y;
  20.                 public Point(int x, int y){
  21.                         this.x = x;
  22.                     this.y = y;
  23.                 }
  24.         }
  25.         Point bestMergePoint(char[][] mat){
  26.          int m = mat.length;-baidu 1point3acres
  27.          if (m == 0) return null;
  28.          int n  = mat[0].length;
  29.        
  30.          // bfs each point that is 1
  31.          int[][] dis = new int[m][n];
  32.          for (int i = 0; i < m; i++){
  33.              for (int j = 0; j < n; j++){
  34.                  if (mat[i][j] == '1') bfs(mat, i, j, dis);
  35.              }. From 1point 3acres bbs
  36.          }
  37.          // count number
  38.          int min = Integer.MAX_VALUE;
  39.          Point ret = null;
  40.          for (int i = 0; i < m; i++){
  41.              for (int j = 0; j < n; j++){
  42.                      // if this point is not visited by a robot
  43.                      if (dis[i][j] == 0 && mat[i][j] == '0') continue;
  44.                  if (mat[i][j] != 'X' && dis[i][j] < min){
  45.                      min = dis[i][j];
  46.                      ret = new Point(i, j);
  47.                  }
  48.              }
  49.          }
  50.          return ret;
  51.         }

  52.         //bfs matrix to mark the distance from x and y
  53.         void bfs(char[][] mat, int x, int y, int[][] dis){-baidu 1point3acres
  54.                  Queue<Point> path = new LinkedList();
  55.                  int[] dx = {1,-1,0,0};
  56.                  int[] dy = {0,0,1,-1};
  57.                  int m = mat.length;
  58.                  int n = mat[0].length;
  59.                  boolean[][] visited = new boolean[m][n];
  60.                  int ct = 0;
  61.                  System.out.println("Started at: " + x + " " + y);
  62.                  int di = 0;
  63.                  path.offer(new Point(x, y));
  64.                  visited[x][y] = true;
  65.                  while (!path.isEmpty()){
  66.                      int count = path.size();
  67.                      for (int i = 0; i < count; i++){-baidu 1point3acres
  68.                          Point cur = path.poll();
  69.                          ct++;
  70.                          // System.out.println(cur.x + " " + cur.y);
  71.                          // visited[cur.x][cur.y] = true;
  72.                          // update cur.value
  73.                          dis[cur.x][cur.y] += di;
  74.                          // check its neighbors
  75.                          for (int j = 0; j < 4; j++){
  76.                              int nx = cur.x + dx[j];
  77.                              int ny = cur.y + dy[j];
  78.                              if (nx >= 0 && nx < m && ny >= 0 && ny < m && mat[nx][ny] != 'X' && !visited[nx][ny]){
  79.                                  path.offer(new Point(nx, ny));
  80.                                  visited[nx][ny] = true;
  81.                              }
  82.                          }
  83.                      }
  84.                      di++;
  85.                  }. 1point3acres
  86.                  System.out.println("total points added to queue: " + ct);
  87.         }
  88.         public static void main(String[] args){
  89.                 Solution sln = new Solution();
  90.                 char[][] mat = {{'0', '0', '0', '0', '1'},
  91.                                                 {'0', '1', 'X', '0', '0'},
  92.                                                 {'0', 'X', '0', '0', '0'},
  93.                                                 {'0', '0', '0', '1', '0'},
  94.                                                 {'0', '0', '0', '0', '0'}};
  95.                 Point ret = sln.bestMergePoint(mat);
  96.                 System.out.println(ret.x + " " + ret.y);
  97.         }
  98. }
复制代码
回复

使用道具 举报

我的人缘0
alex.chan 发表于 2015-10-23 10:50:05 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  95% (130)
 
 
4% (6)  踩
赞,楼主很用心啊
回复

使用道具 举报

我的人缘0
 楼主| kennethinsnow 发表于 2015-10-23 10:53:33 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  93% (83)
 
 
6% (6)  踩
kennethinsnow 发表于 2015-10-23 10:45
机器人距离和最小问题
注意问题参见 http://www.1point3acres.com/bbs/thread-145166-1-1.html

// Find the largest K such that A^K is a subsequence of B, where A, B are two strings. |A| << |B|.

// Power of a string:-baidu 1point3acres
// Let A = xyxz
// Then,. 1point3acres
// A^1 = A = xyxz
// A^2 = xxyyxxzz
// A^3 = xxxyyyxxxzzz
. 1point 3acres 璁哄潧
// Example:
// A = xyxz
// B = xabyzxz

// B xaybyxzxxxzz

// A xxyyxxzz
  1. public int findK(String A, String B){
  2.             int len1 = A.length(), len2 = B.length();
  3.             if (len1 > len2) return 0;
  4.             if (len1 <= 0) return 0;
  5.             // remove space weird characters, capital to lower case etc if needed.
  6.             A = preprocess(A);
  7.             // find signature for each A and B and get the max possible value for k
  8.             int[] sigA = new int[256];
  9.             int[] sigB = new int[256];
  10.             for (int i = 0; i < len1; i++) sigA[A.charAt(i)]++;
  11.             for (int i = 0; i < len2; i++) sigB[B.charAt(i)]++;
  12.             int kMax = Integer.MAX_VALUE;. 1point3acres
  13.             for (int i = 0; i < len1; i++){
  14.                 if (sigA[A.charAt(i)] != 0) kMax = Math.min(sigB[A.charAt(i)] / sigA[A.charAt(i)], kMax);
  15.             }
  16.             int lo = 0, hi = kMax;
  17.             int ret = 0;
  18.             while (lo <= hi){
  19.                 int med = lo + (hi - lo) / 2;
  20.                 if (isSubSeq(expand(A, med), B)){
  21.                     ret = med;
  22.                     lo = med + 1;
  23.                 } else {. check 1point3acres for more.
  24.                     hi = med - 1;
  25.                 }
  26.             }
  27.             return ret;
  28.         }
  29.        
  30.         String expand(String A, int k){
  31.             StringBuilder sbuf = new StringBuilder();
  32.             for (int i = 0; i < A.length(); i++){
  33.                 char c = A.charAt(i);
  34.                 for (int j = 0; j < k; j++) sbuf.append(c);
  35.             }
  36.             return sbuf.toString();
  37.         }
  38.        
  39.         boolean isSubSeq(String A, String B){
  40.             int len1 = A.length(), len2 = B.length();
  41.             int a = 0, b = 0;
  42.             while (a < len1 && b < len2){
  43.                 if (A.charAt(a) == B.charAt(b)){
  44.                     a++;
  45.                     b++;
  46.                 } else {
  47.                     b++;
  48.                 }
  49.             }
  50.             return a == len1;
  51.         }
  52.        
  53.         String preprocess(String A){
  54.             return A.toLowerCase();
  55.         }
复制代码
回复

使用道具 举报

我的人缘0
 楼主| kennethinsnow 发表于 2015-10-23 10:54:45 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  93% (83)
 
 
6% (6)  踩
/*一个正方形的矩阵,左上角的位置保证是0,其他的每个坐标位置上都有一个大于等于0的数。
* 一个人最初携带着的钱数为K,然后要从左上角走到右下角,每次只能向右或者向下走,
* 每到一个位置上就需要花掉该位置
游客,本帖隐藏的内容需要积分高于 10 才可浏览,您当前积分为 0。
查看如何攒积分 Click here for more info.
大于等于0,并且尽可能接近于0.*/
  1. public class Solution {
  2.         public int findMaxSpent(int[][] mat, int k){
  3.                 // dp[i][j][n] is the max mount spent at i,j but less than n
  4.                 // dp[i][j][n] = max(dp[i - 1][j][n - mat[i][j]], dp[i][j - 1][n - mat[i][j]])
  5.                 int m = mat.length;
  6.                 if (m == 0) return -1;
  7.                 int n = mat[0].length;
  8.                 int[][] dp1 = new int[n + 1][k + 1];
  9.                 int[][] dp2 = new int[n + 1][k + 1];
  10.                 // when i == -1; edge case
  11.                 for (int j = 0; j < n; j++){
  12.                         for (int h = 0; h <= k; h++){
  13.                                 dp1[j + 1][h] = -1;
  14.                         }
  15.                 }
  16.                 // when j = -1 edge case
  17.                 for (int h = 0; h <= k; h++){. check 1point3acres for more.
  18.                         dp2[0][h] = -1;
  19.                 }
  20.                
  21.                 for (int i = 0; i < m; i++){
  22.                         for (int j = 0; j < n; j++){
  23.                                 for (int h = 0; h <= k; h++){
  24.                                         if (i == 0 && j == 0) dp2[j + 1][h] = 0;
  25.                                         else if (h < mat[i][j]) dp2[j + 1][h] = -1;
  26.                                         else {
  27.                                                 int pre1 = dp2[j][h - mat[i][j]];
  28.                                                 int pre2 = dp1[j + 1][h - mat[i][j]];
  29.                                                 if (pre1 == -1 && pre2 == -1) dp2[j + 1][h] = -1;
  30.                                                 else dp2[j + 1][h] = Math.max(pre1, pre2) + mat[i][j];
  31.                                         }
  32.                                 }
  33.                         }
  34.                         dp1 = Arrays.copyOf(dp2, n + 1);
  35.                 }
  36.                 return dp1[n][k];
  37.         }
  38.        
  39.         public static void main(String[] args){
  40.                 Solution sln = new Solution();
  41.                 int[][] mat = {{0,4,5}, {1,3,2}, {0,1,1}};
  42.                 System.out.println(sln.findMaxSpent(mat, 12));
  43.         }
  44. }
复制代码
回复

使用道具 举报

我的人缘0
 楼主| kennethinsnow 发表于 2015-10-23 11:10:38 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  93% (83)
 
 
6% (6)  踩
String s1 = "waeginsapnaabangpisebbasepgnccccapisdnfngaabndlrjngeuiogbbegbuoecccc";
String s2 = "a+b+c-";
-baidu 1point3acres
s2的形式是
游客,本帖隐藏的内容需要积分高于 10 才可浏览,您当前积分为 0。
查看如何攒积分 Click here for more info.
间可以有零个或多个字符,返回共有多少个。在上面这个例子中,有四个。
  1. public class Solution {
  2.         public int findMatches(String s1, String s2){
  3.        int len1 = s1.length(), len2 = s2.length();
  4.        if (len2 > len1) return 0;
  5.        if (len2 == 0 || len2 %2 != 0) return 0;
  6.        // DP matches each pattern
  7.        // number of matches between s1.substring(0, i + 1) and s2.substring(j * 2, j * 2 + 2)
  8.        int[][] dp = new int[len1 + 1][len2 / 2 + 1];
  9.        // no match for dp[0][j]
  10.        for (int i = 1; i < len1; i++){
  11.            dp[i + 1][0] = 1;
  12.            for (int j = 0; j < len2 / 2; j++){
  13.                dp[i + 1][j + 1] = dp[i][j + 1];
  14.                if (isMatch(s1, s2, i, j)){-baidu 1point3acres
  15.                    if (s2.charAt(2*j + 1) == '+')
  16.                        dp[i + 1][j + 1] += dp[i - 1][j];
  17.                    else
  18.                        dp[i + 1][j + 1] += dp[i - 3][j];
  19.                }
  20.            }
  21.        }
  22.        return dp[len1][len2 / 2];
  23.    }

  24.    boolean isMatch(String s1, String s2, int i, int j){
  25.        char c = s2.charAt(j * 2);
  26.        char p = s2.charAt(j * 2 + 1);
  27.        int len = p == '+' ? 2 : 4;
  28.        if (i - len < -1) return false;
  29.        for (int h = i - len + 1; h <= i; h++){
  30.            if (s1.charAt(h) != c) return false;
  31.        }
  32.        return true;
  33.    }
  34.    -baidu 1point3acres
  35.    public static void main(String[] args){
  36.            Solution sln = new Solution();
  37.            // 4
  38.            System.out.println(sln.findMatches("waeginsapnaabangpisebbasepgnccccapisdnfngaabndlrjngeuiogbbegbuoecccc", "a+b+c-"));
  39.            // 5
  40.            System.out.println(sln.findMatches("waeginsapnaabangpisebbasccepgnccccapisdnfngaabndlrjngeuiogbbegbuoecccc", "a+b+c+c-"));
  41.    }
  42. }
复制代码
回复

使用道具 举报

游客
请先登录
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

提醒:发帖可以选择内容隐藏,部分板块支持匿名发帖。请认真读完以下全部说明:

■隐藏内容方法 - 不要多加空格: [hide=200]你想要隐藏的内容比如面经[/hide]
■意思是:用户积分低于200则看不到被隐藏的内容
■可以自行设置积分值,不建议太高(200以上太多人看不到),也不建议太低(那就没必要隐藏了)
■建议只隐藏关键内容,比如具体的面试题目、涉及隐私的信息,大部分内容没必要隐藏。
■微信/QQ/电子邮件等,为防止将来被骚扰甚至人肉,以论坛私信方式发给对方最安全。
■匿名发帖的板块和方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

手机版|小黑屋|一亩三分地

GMT+8, 2019-4-19 00:41

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表