Open In App

Commvault Interview Experience (On-Campus)

Improve
Improve
Like Article
Like
Save
Share
Report

Commavault visited our campus for recruiting for SDE (C++/JAVA) and SDET( PYTHON) roles. If you choose the language as C++/JAVA you will be given an SDE role and for python SDET roles.

First Round: Online Coding round on their platform. The webcam is on. There were 15 MCQ and 3 coding questions. MCQ was based on OOPs mainly and one easy and two medium coding questions.

  1. Longest Palindromic Substring
  2. Maximum element between two nodes of BST

Don’t remember based on xor.

Second Round: Implementation of Virtual File System. We have to complete their code of the virtual file system. This round was 6 hrs.   This whole code was to be completed in 6 hrs.

Java




import java.io.*;
  
import java.math.BigInteger;
  
import java.security.MessageDigest;
  
import java.security.NoSuchAlgorithmException;
  
// Java class to calculate MD5 hash value
  
class MD5 {
  
    public static String getMd5(String input)
    {
  
        try {
  
            // Static getInstance method is called with
            // hashing MD5
  
            MessageDigest md
                = MessageDigest.getInstance("MD5");
  
            // digest() method is called to calculate
            // message digest
  
            // of an input digest() return array of byte
  
            byte[] messageDigest
                = md.digest(input.getBytes());
  
            // Convert byte array into signum representation
  
            BigInteger no
                = new BigInteger(1, messageDigest);
  
            // Convert message digest into hex value
  
            String hashtext = no.toString(16);
  
            while (hashtext.length() < 32) {
  
                hashtext = "0" + hashtext;
            }
  
            return hashtext;
        }
        catch (
            NoSuchAlgorithmException
                e) { // incorrect message digest algorithms
  
            throw new RuntimeException(e);
        }
    }
}
  
class CV_SIOManager {
  
    public CV_SIOManager() {}
  
    public CVFile CVGetFile(
        final String
            filePathName) // Returns the reference to the
                          // CVFile object for the given
  
    // filePathName.
  
    {
  
        // Put your code here
  
        return null;
    }
  
    public void
    CVDisplayStats() // Display the whole stats that
                     // CV_SIOManager holds.
  
    {
  
        // Put your code here
    }
  
    public int CVDeleteFile(
        final String filePathName) // Deletes a file in the
                                   // given path.
  
    {
  
        // Put your code here
  
        return 0;
    }
  
    public int CVMoveFile(
        final String sourcePathName,
        final String targetPathName) // Moves file from one
                                     // location to
  
    // another.
  
    {
  
        // Put your code here
  
        return 0;
    }
  
    public int CVCopyFile(
        final String sourcePathName,
        final String targetPathName) // Copies file from one
                                     // location to
  
    // another.
  
    {
  
        // Put your code here
  
        return 0;
    }
}
  
class CVFile {
  
    private String fileName;
  
    public CVFile()
    {
  
        // put your code here
    }
  
    public CVFile(
        final String filePathName,
        final String
            content) // Creates a file with given content.
  
    {
  
        // Put your code here
  
        fileName = filePathName;
    }
  
    public void CVModifyFile(
        final String
            content) // Modifies and rewrites the content of
                     // a file with given content.
  
    {
  
        // Put your code here
    }
  
    public int
    CVReadFile(int revision, /* output */ String
                   content) // Reads file content based on
                            // the given revision.
  
    {
  
        // Put your code here
  
        return 0;
    }
  
    public int CVTrim() // Trims all previous versions and
                        // only holds on to latest content
  
    {
  
        // Put your code here
  
        return 0;
    }
}
  
/*****
  
* NOTE ---- 1. Do not make any modifications to main(). 2.
Every filePathName
  
* given in this problem is the absolute file path with file
name like
  
* DriveName:\\Path\\To\\FileName (Eg: C:\\A.txt).
  
*****/
  
public class SIOManagerDriver {
  
    public static void main(String[] args)
    {
  
        CV_SIOManager sm = new CV_SIOManager();
  
        String contentInFile = "";
  
        CVFile fx;
  
        CVFile f1 = new CVFile("C:\\File1.txt",
                               "Welcome to Commvault 1!");
  
        CVFile f2 = new CVFile("C:\\File2.txt",
                               "All The Best 2!");
  
        CVFile f2_1 = new CVFile("C:\\File2_1.txt",
                                 "All The Best 2!");
  
        CVFile f9
            = new CVFile("C:\\File9.txt", "This is File 9");
  
        sm.CVDisplayStats();
  
        CVFile f4
            = new CVFile("C:\\File4.txt", "Good Luck 4!");
  
        CVFile f4_1
            = new CVFile("C:\\File4_1.txt", "Good Luck 4!");
  
        sm.CVDisplayStats();
  
        CVFile f10
            = new CVFile("D:\\File10.txt", "Good Luck 10!");
  
        CVFile f20 = new CVFile("D:\\File20.txt",
                                "Welcome to Commvault 20!");
  
        CVFile f50 = new CVFile("D:\\File50.txt",
                                "Best Place to Work 50!");
  
        CVFile f20_1 = new CVFile(
            "D:\\File20_1.txt", "Welcome to Commvault 20!");
  
        sm.CVDisplayStats();
  
        CVFile f60 = new CVFile("D:\\File60.txt",
                                "All THE Best 60!");
  
        CVFile f70 = new CVFile("D:\\File70.txt",
                                "All The Best 70!");
  
        CVFile f70_1
            = new CVFile("D:\\File70.txt", "Commvault 70!");
  
        sm.CVDisplayStats();
  
        fx = sm.CVGetFile("D:\\File60.txt");
  
        if (null != fx) {
  
            fx.CVReadFile(-5, contentInFile);
  
            System.out.println(contentInFile);
        }
  
        f4.CVModifyFile("Welcome to Commvault 4!");
  
        fx = sm.CVGetFile("C:\\File4.txt");
  
        if (null != fx) {
  
            fx.CVReadFile(0, contentInFile);
  
            System.out.println(contentInFile);
        }
  
        fx = sm.CVGetFile("C:\\File4.txt");
  
        if (null != fx) {
  
            fx.CVReadFile(-1, contentInFile);
  
            System.out.println(contentInFile);
        }
  
        sm.CVDisplayStats();
  
        sm.CVMoveFile("C:\\File9.txt", "D:\\File30.txt");
  
        sm.CVMoveFile("C:\\File4.txt", "D:\\File2.txt");
  
        sm.CVDisplayStats();
  
        sm.CVCopyFile("C:\\File4.txt", "D:\\File21.txt");
  
        sm.CVCopyFile("C:\\File3.txt", "C:\\File40.txt");
  
        sm.CVDisplayStats();
  
        sm.CVDeleteFile("D:\\File20.txt");
  
        sm.CVDisplayStats();
  
        sm.CVDeleteFile("C:\\File1.txt");
  
        sm.CVDeleteFile("C:\\File4.txt");
  
        sm.CVDisplayStats();
  
        sm.CVDeleteFile("D:\\File7.txt");
  
        sm.CVDeleteFile("D:\\File70.txt");
  
        sm.CVDeleteFile("D:\\File30.txt");
  
        sm.CVDisplayStats();


Unfortunately, no one got selected for interviews.

ALL THE BEST!



Last Updated : 15 Sep, 2020
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads