# 字符串简介
# 为何单独讨论字符串类型
# 1. 字符串的基本操作对象通常是字符串整体或者其子串
例如有这样一个字符串序列:I like leetcode
现在我们想把这句话反向输出,他的结果应该是 Leetcode like I
而不是 edocteel ekil I
。这里的每个单词就叫做字符串的「子串」,通常,我们的操作对象更多情况下是这些子串。
# 2. 字符串操作比其他数据类型更复杂(例如比较、连接操作)
在 js 中可能比其他语言简单一些
对于不同的编程语言,字符串的某些操作会有所不同。下面我们将从字符串的「比较」和「连接」操作两个方面分别进行讲解。
# 比较函数
在 js 中,我们使用全等比较来判断两个字符串是否相等
'abc' === 'abc'; // true
'abc' === 'ab'; // false
'abc' == 'abc'; // true
'abc' == 'ab'; // false
# 连接操作
在 js 中,连接/拼接字符串使用 + 操作符
'a' + 'b'; // 'ab'
# 最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
var longestCommonPrefix = function(strs) {
// 方法一:纵向对比
var str = '';
var index = 0;
var done = false;
if (strs[0] && strs[0][0]) {
while (strs[0][index] && !done) {
for (var i = 0; i < strs.length; i++) {
if (i > 0 && strs[i][index] !== strs[i - 1][index]) {
done = true;
break;
}
}
if (!done) {
str += strs[0][index];
index++;
}
}
return str;
} else {
return str;
}
};
作者:力扣 (LeetCode)
链接:https://leetcode-cn.com/leetbook/read/array-and-string/c9lnm/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。