📌  相关文章
📜  Accolite面试经验|习题集13(实习和FTE校园)(1)

📅  最后修改于: 2023-12-03 14:39:00.955000             🧑  作者: Mango

Accolite面试经验|习题集13(实习和FTE校园)

简介

Accolite是一家以软件开发和IT服务为主的公司,在印度、美国、英国和澳大利亚等地都设有办事处。Accolite在印度的总部位于班加罗尔,提供了开发和维护各种类型的软件服务,如Web开发、移动应用程序开发、数据分析和云计算等。公司在印度的各大城市都有实习专业。面试难度较高,需要准备充足。

面试经验
面试流程

Accolite公司的面试流程通常分为以下几轮:

  1. 在线测试:主要考察编码,算法和数据结构知识。
  2. 技术面试:主要考察应聘者的编码和算法能力,各类数据结构和设计模式知识。
  3. 技术+HR面试:主要考察应聘者的职业和个人背景,并做职业和期望薪资谈判。
面试题目

以下是一些有关Accolite面试的问题(实习和FTE校园):

问答题

  1. 解释面向对象编程?
    • 面向对象编程是一种编程范型。面向对象编程概念和操作实体通过其标识和消息通信互动,而不是通过显示命令。对象是单个实体的实例,具有自己的数据域和方法,可表达自己的内部状态,并且能够对指向其它对象的消息进行响应。
  2. 有几个访问修饰符?它们分别是什么?
    • Java中共有四个访问修饰符:public、private、protected和default。它们的解释如下:
      • public:可被任何访问到。
      • private:向类内部访问可用。
      • protected:与在包内部使用共享意义,也就是向该包内部凭其源码可访问。
      • default:没有关键字,作为默认修饰符使用,只能在相同包中使用。
  3. 解释重写和重载的区别?
    • 重写(Overriding)是在子类中定义一个方法与父类的方法完全一致,包括方法名、参数类型和返回类型三个方面,即为重写。而重载(Overloading)是在同一类中可以定义多个同名方法,但是这些方法的参数列表不同,即为重载。

编程习题

  1. 给定一个n个节点的无向图,判断该图是否是树?
public class Graph {
    private int V;   
    private LinkedList<Integer> adj[]; 
  
    Graph(int v) { 
        V = v; 
        adj = new LinkedList[v]; 
        for (int i=0; i<v; ++i) 
            adj[i] = new LinkedList(); 
    } 
	
    void addEdge(int v,int w) { 
        adj[v].add(w); 
        adj[w].add(v);  
    } 
	
    Boolean isTree() { 
        Boolean visited[] = new Boolean[V]; 
        for (int i = 0; i < V; i++) 
            visited[i] = false; 
  
        if (isCyclic(0, visited, -1)) 
            return false; 

        for (int u = 0; u < V; u++) 
            if (!visited[u]) 
                return false; 
  
        return true; 
    } 

    Boolean isCyclic(int v, Boolean visited[], int parent) 
    { 
        visited[v] = true; 
        Integer i; 
  
        Iterator<Integer> it = adj[v].iterator(); 
        while (it.hasNext()) 
        { 
            i = it.next(); 
  
            if (!visited[i]) 
            { 
                if (isCyclic(i, visited, v)) 
                    return true; 
            } 
  
            else if (i != parent) 
               return true; 
        } 
  
        return false; 
    } 
}

  1. 给定两个字符串s和t,编写一个函数来确定t是否是s的重排形式。
public class Solution {
    public boolean isAnagram(String s, String t) {
        if(s.length()!=t.length()) return false;
        int[] arr=new int[26];
        for(int i=0;i<s.length();i++){
            arr[s.charAt(i)-97]++;
            arr[t.charAt(i)-97]--;
        }
        for(int i=0;i<26;i++){
            if(arr[i]!=0) return false;
        }
        return true;
    }
}

以上两个例子均为Java代码,第4题是判断给定n个节点的无向图是否是树,这里通过深度遍历判断,第5题是判断两个字符串是否是重排形式(anagrams),其中用到了int数组记录字母出现次数的巧妙做法。

总结

这些题目只是Accolite面试中的一部分,但总体上更侧重于算法知识以及对计算机的理解。为更好地准备Accolite的面试,建议应聘者注重数据结构和算法的学习。祝大家能够通过Accolite的面试!