14. longest common prefix

题目描述

在一组字符串中,找出最长的前缀。

题目分析

将字符串数组想象为二维数组,然后按列遍历,直到某行缺失或不同。

代码

#include <iostream>
#include <vector>

class Solution {
public:
  std::string longestCommonPrefix(std::vector<std::string>& strs) {
    if (strs.size() == 0) {
      return std::string("");
    }
    int ptr = -1;
    bool flag = true;
    while (flag) {
      ++ptr;
      for (unsigned i = 0; i < strs.size(); ++i) {
        if (ptr >= strs[i].length()) {
          flag = false;
          break;
        }
        if (i == 0) {
          continue;
        }
        if (strs[i][ptr] != strs[i-1][ptr]) {
          flag = false;
          break;
        }
      }
    }
    //std::cout << ptr << std::endl;
    return strs[0].substr(0, ptr);
  }
};

总结

代码从本上敲到电脑上时,敲错了。