阿里内推面试

内推面试电话打完之后,做了编程笔试,题目很简单,而且之前还用伪代码写过,有点紧张最终写了个大概,但思路还算清楚,已经凉凉!

电话面试问题:

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 }
专注搬砖,擅长搬砖砸自己的脚~~~ Email: ltwbuaa@163.com
原文地址:https://www.cnblogs.com/TonvyLeeBlogs/p/9449878.html