LeetCode 14. Longest Common Prefix

来源:互联网 发布:自然语言处理 数据挖掘 编辑:程序博客网 时间:2024/05/24 03:26

Write a function to find the longest common prefix string amongst an array of strings.

这题就是找一堆字符串中最长的公共前缀。
直接暴力求解就行。
先取第一个字符串第一个字符,看看是不是所有其他字符串的第一个字符都和它一样,如果一样就继续看第二个字符,如果不一样就退出循环。但是,这个最长的长度不能超过长度最小的字符串的长度。
有一种特殊情况,就是只有一个字符串。那最长的公共前缀就是它自己。

代码如下:

class Solution {public:    string longestCommonPrefix(vector<string>& strs) {        vector<string>::iterator it;        int minLength = 2<<30;        string ans="";        bool flag=true;        char temp;        int len;        if(strs.size()==1){            ans = *strs.begin();        }else{            for(it=strs.begin();it!=strs.end();it++){                if((*it).length()<minLength) minLength=(*it).length();            }            for (len=0; len<minLength; len++) {                temp = (*strs.begin())[len];                for (it = strs.begin()+1; it!=strs.end(); it++) {                    if((*it)[len]!=temp) {                        flag = false;                        break;                    }                }                if(!flag){                    break;                }            }            for (int i=0; i<len; i++) {                ans+=(*strs.begin())[i];            }        }        return ans;    }};
原创粉丝点击