当前位置: 代码迷 >> 综合 >> Works Application 万革始 2019校招面试题总结
  详细解决方案

Works Application 万革始 2019校招面试题总结

热度:6   发布时间:2023-12-26 08:26:09.0


2018

* DP,DFS题 leetcode

* 给出链表,给出k,将小于k的放置在前面,其余保持不变
124521,k=3  -> 122145

* 旋转链表:将列表向右旋转k个位置,其中k为非负数。
如,123456,k = 2  -> 561234


* 判断两个二叉树是否相等

* 判断一个二叉树是否为镜像二叉树

* 左右反转二叉树

* Z形层次遍历二叉树

* 字符串相加

* zigzag题,leetcode

* 求最长回文子序列,直接反过来求最长公共子序列就好了

* 区间合并

* LeetCode 15. 3Sum 三数之和

2017\2016

* 算两个没有公共字母的字符串的最大长度积

* 第一题是要查找数组中的最小元素


* Find All Anagrams in a String.(不清晰)

* Decode String Given an encoded string,return it's decoded string

* 字符串匹配

* 广度优先搜索

* 在一个字符串中找另一个的同形异构体 leetcode 438 

* leetcode 9

* leetcode153,400

* nth digit题, leetcode

* 回文?动态规划  dp?

* 翻转二叉树、镜像二叉树,求深度

* 二叉树的序列化和反序列化,leetcode

* 第一题是字符串转化为二叉树与二叉树转化为字符串的题(解决方案是BFS)。

例如:字符串数组 {1, 2, 3, null, null, null, null} 
转化为对应的二叉树为

   1
                     /    \
                    2      3
 null表示节点为空,按照二叉数从树根(第一层),第二层进行遍历。


  
* 一个数字数组,将这些数字组合成一个最大的数
(定义一个排序函数,然后将排序的数字连接起来)。


 例如数组 {3, 30, 34, 9} 组合后的最大数是 934330.

* 输出从n个数中选取k个数的所有情况

* 链表 字符串 

* 给定一个数,判断这个数是否为2的次方,禁止使用循环

* 给定一个字符串,按照zigzag转换然后输出新的字符串

2015

* 2+5*8处理成其后缀表达式2 5 8 * +

* 后缀表达式计算结果的题

* 最长公共子串,最长公共子序列,括号匹配stack,多种括号的匹配

* 最长递增子序列;最长连续相同子序列

* 两个正整数M和N,M <= N,令0 < a < M,M <= b <= N,分别输出以a为分子b为分母的可约和不可约分数

#include <iostream>
#include <vector>
using namespace std;
 
int gcd(int m, int n)
{
    if (n == 0)
    {
        return m;
    }
    else
    {
        return gcd(n, m % n);
    }
}
int main()
{  
    int m, n;
    vector<string> canReduce, cannotReduce;
    while (cin >> m >> n)
    {
        if (m >= n)
        {
            break;
        }
        for (int i = 1; i < m; i++)
        {
            for (int j = m; j <= n; j++)
            {
                char str[10];      
                sprintf(str, "%d/%d", i, j);
                if (gcd(i, j) == 1)
                {                   
                    cannotReduce.push_back(str);
                }
                else
                {
                    canReduce.push_back(str);
                }
            }
        }
        for (int i = 0; i < canReduce.size(); i++)
        {
            cout << canReduce.at(i).c_str() << " ";
        }
        cout << endl;
        for (int i = 0; i < cannotReduce.size(); i++)
        {
            cout << cannotReduce.at(i).c_str() << " ";
        }
        cout << endl;
    }
    return 0;
}

2014

* 字符串全排列, 匹配

2013

* 全排序:给一个字符串“acb”,输出abc acb bac bca cab cba  /aab会怎么样

 

  相关解决方案