阿里內推面試


思緒萬千,內推面試電話打完之后,做了編程筆試,題目很簡單,而且之前還用偽代碼寫過,有點緊張最終寫了個大概,但思路還算清楚,已經涼涼!

電話面試問題:

1、介紹項目,業務邏輯+框架+部署+運維+數據庫;

2、GC算法,標記清楚、標記整理、復制算法;

3、雙親委派機制;

4、ThreadLocal;

5、樂觀鎖和悲觀鎖;

 

問題還算比較簡單,都xjb說了一些,然后發了個編程題,在線測了一下,太緊張只寫了個大概,現在想想愚不可及。。。。面試完了一下就寫出來了,真是呵呵。。。上題及實現:

 題目:
  給定一個字符串,找出這個字符串中最長的不重復串。
  比如:對於字符串"abcba",那么返回的結果應該是"abc"或者"cba"(返回一個即可);對於字符串"acbba",返回的應是"acb"
 1 package interview.test;
 2 
 3 import java.util.Scanner;
 4 
 5 public class TestClass {
 6 
 7   /** 1 40'
 8    題目:
 9    給定一個字符串,找出這個字符串中最長的不重復串。
10    比如:對於字符串"abcba",那么返回的結果應該是"abc"或者"cba"(返回一個即可);對於字符串"acbba",返回的應是"acb"
11    */
12   public static void main(String[] args) {
13     // write your code here
14     Scanner sc = new Scanner(System.in);
15 
16     String inputString = sc.nextLine();
17     char[] arrString = inputString.toCharArray();
18     int length = arrString.length;
19 
20     // 記錄最大長度的不重復的字符串的起始位置和終止位置,及最大長度
21     int start = 0;
22     int end = 1;
23     int maxLength = 1;
24 
25     // 用來滑動的窗口
26     int windowStart = 0;
27     int windowEnd = 1;
28 
29     // 存儲字符是否已在子串中,字符的ASCII做為數組索引,數組值為當前字符的索引位置
30     int[] flag = new int[256];
31     for (int i = 0;i < 256; i++){
32       flag[i] = -1;
33     }
34 
35     flag[arrString[0]]= 0;
36     for(int i = 1; i < length; i++) {
37       // 如果已經存在,將窗口起始點值為該元素的index
38       if (windowStart < windowEnd){
39         if(flag[arrString[i]] >= 0 ) {
40           windowStart = flag[arrString[i]];
41         }else {
42           flag[arrString[i]] = i;
43           windowEnd++;
44         }
45 
46         // 如果當前滑動窗口的長度大於原來記錄的最大非重復子串的長度,說明找到了一個新的最大子串,更新最大子串紀錄值
47         if ((windowEnd - windowStart + 1) > maxLength) {
48           maxLength = windowEnd- windowStart + 1;
49           start = windowStart;
50           end = windowEnd;
51         }
52       }
53     }
54     StringBuilder db = new StringBuilder();
55     for(int k = start;k < end; k++) {
56       db.append(arrString[k]);
57     }
58     System.out.println(db);
59   }
60 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM