技术面手撕代码的原题~
要求用C++写
楼主比较菜面试时候又比较紧张面试官又看着我写,因此当场只写出来一个通用的解法,本以为面试官会让我优化时间复杂度,结果没有,只是测试了一下我的代码,每个测试点都通过了
我的想法是,因为要求最大公共前缀嘛,结果肯定不可能比这些字符串中最短的长,所以首先求出最短的字符串长度假设长度为n,只考虑每个字符串的前n个字符,一来是避免不必要的运算,二来是避免访问字符串的时候数组越界带来不必要的bug,然后以第一个字符串为基准,每次检查剩下所有字符串的第i个字符是否与第一个字符串的第i个相等,如果出现不等,说明之前的i个字符已经不是公共前缀了,直接退出循环取前i-1个字符返回即可
面试时候写的C++代码如下:
#include<iostream>
#include<vector>
using