📜  Paytm 面试经历 | 15套(1)

📅  最后修改于: 2023-12-03 15:33:25.628000             🧑  作者: Mango

Paytm 面试经历 | 15套

Paytm 是印度的一家移动支付公司,为印度数百万用户提供移动支付服务。该公司的技术团队拥有许多优秀的程序员,他们在不断创新,为公司发展做出贡献。以下是15套Paytm 的面试题目,包括常见算法,编程语言和数据结构。

算法
1.链表

给定一个链表,请反转该链表并返回反转后的链表。

def reverseList(head):
    pre = None
    curr = head
    while curr:
        temp = curr.next
        curr.next = pre
        pre = curr
        curr = temp
    return pre
2.二叉树

给定一个二叉树,请实现一个函数,该函数返回该二叉树的前序遍历结果。

def preorderTraversal(root):
    res = []
    stack = [root]
    while stack:
        node = stack.pop()
        if not node:
            continue
        res.append(node.val)
        stack.append(node.right)
        stack.append(node.left)
    return res
3.字符串

给定一个字符串,请实现一个函数,该函数返回该字符串中最长的回文子串。

def longestPalindrome(s):
    if not s:
        return ""
    n = len(s)
    if n == 1:
        return s
    start = 0
    max_len = 1
    dp = [[False] * n for _ in range(n)]
    for j in range(1, n):
        for i in range(j):
            if s[i] == s[j]:
                if j - i < 3:
                    dp[i][j] = True
                else:
                    dp[i][j] = dp[i + 1][j - 1]
            else:
                dp[i][j] = False
            if dp[i][j]:
                if j - i + 1 > max_len:
                    start = i
                    max_len = j - i + 1
    return s[start:start+max_len]
编程语言
4.Python

怎样在Python中使用map()函数?

map(function, iterable)
5.Java

在Java中,如何实现多线程?

class MyThread extends Thread {
    public void run() {
        System.out.println("线程运行中");
    }
}
MyThread thread = new MyThread();
thread.start();
6.C++

在C++中,什么是虚函数?怎么使用?

虚函数是C++中一种特殊类型的函数,可以通过一个类的指针或引用调用,并且可以在派生类中进行重写。使用虚函数需要在函数的声明和定义中加上关键字virtual。

class A {
   public:
    virtual void func() {
        cout << "虚函数" << endl;
    }
};
class B : public A {
   public:
    void func() {
        cout << "虚函数的重写" << endl;
    }
};
数据结构
7.栈

在Python中,如何使用列表来实现栈?

class Stack:
    def __init__(self):
        self.stack = []

    def push(self, item):
        self.stack.append(item)

    def pop(self):
        if not self.is_empty():
            return self.stack.pop()

    def is_empty(self):
        return len(self.stack) == 0

    def peek(self):
        if not self.is_empty():
            return self.stack[-1]

    def __str__(self):
        return str(self.stack)
8.队列

在Java中,如何使用LinkedList来实现队列?

class Queue {
    private LinkedList<Integer> list;

    public Queue() {
        list = new LinkedList<Integer>();
    }

    public void enqueue(int item) {
        list.addLast(item);
    }

    public int dequeue() {
        if (isEmpty())
            throw new NoSuchElementException();
        return list.removeFirst();
    }

    public boolean isEmpty() {
        return list.isEmpty();
    }
}
9.哈希表

在C++中,如何使用unordered_map实现哈希表?

#include <iostream>
#include <unordered_map>
using namespace std;

int main() {
    unordered_map<string, int> ump = {{"apple", 5}, {"banana", 3}, {"orange", 6}};
    ump["pear"] = 2;
    ump.at("apple") = 8;
    ump.erase("orange");
    for (auto x : ump) {
        cout << x.first << " " << x.second << endl;
    }
    return 0;
}
数据库
10.MySQL

在MySQL中,如何创建一个数据库?

CREATE DATABASE dbname;
11.Oracle

在Oracle中,如何创建一个表?

CREATE TABLE table_name (
    column1 datatype constraint,
    column2 datatype constraint,
    column3 datatype constraint,
    ....
    CONSTRAINT constraint_name PRIMARY KEY (column1)
);
12.MongoDB

在MongoDB中,如何获取一个集合的所有文档?

db.collection.find()
操作系统
13.Linux

什么是Linux中的管道?怎样使用它?

管道是Linux中一种特殊的文件类型,用于在两个进程间进行相互通信。它可以用于在两个进程间传递数据。

command1 | command2
14.Windows

在Windows中,如何查看CPU使用率?

打开任务管理器,选择“性能”,查看CPU使用率信息。

15.网络

什么是TCP协议?与UDP协议有什么区别?

TCP协议是一种可靠的传输协议,可用于在计算机之间进行数据传输。UDP协议是一种不可靠的传输协议,不能保证数据能够到达目的地。与TCP协议相比,UDP协议更快,但不可靠。