题解 | #最长公共前缀#
最长公共前缀
https://www.nowcoder.com/practice/28eb3175488f4434a4a6207f6f484f47
class Solution { public: /** * * @param strs string字符串vector * @return string字符串 */ string longestCommonPrefix(vector<string>& strs) { // write code here //处理空数组 int n=strs.size(); if(n==0) return ""; //遍历第一个字符串 for(int i=0;i<strs[0].length();i++){ char temp=strs[0][i]; for(int j=1;j<n;j++){ if(i==strs[j].length()||temp!=strs[j][i]) return strs[0].substr(0,i); } } return strs[0]; } };
strs[0].length()
和 strs[0].size()
都是返回字符串 strs[0]
的长度,都可以用来判断一个字符串的长度。
实际上,它们在大多数情况下是等价的,因为 C++ 标准库中的 string 类型本来就是基于标准库中的 STL 容器实现的,而 STL 中的容器也是通过 size() 方法来获取元素个数的。因此,string 类型中的 size() 方法本质上等同于 length() 方法。
但是需要注意的是,在某些 STL 容器中,例如 vector,它们的size() 方法和length() 方法确实有所不同。size() 返回的是元素的个数,而length() 返回的是容器内存储的字符个数。这里“字符”指的是字符型数据类型,包括 char、wchar_t 等。
而由于 string 类型本身就是字符型数据类型char组成的,它不存在这种 size() 方法和 length() 方法差异的问题。如果使用string类型实例化的容器,可尽情使用size() 或者 length() 进行长度判断。