字符串操作()

字符串的基本操作对象通常是字符串整体或者其子串,很多时候我们希望对子串进行操作,这是字符串与数组不同的地方之一。且字符串部分操作比数组更加复杂,如比较和连接操作。在c++中,字符串可以用==来实现比较,也可以直接进行连接操作,但是在其他语言如java中不可以直接实现且字符串不可变。

1.查找字符串最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 。

""

输入:strs = [“flower”,”flow”,”flight”]输出:”fl”

输入:strs = [“dog”,”racecar”,”car”]输出:””

思路:由于寻找公共前缀,不妨设置第一个为公共前缀,然后将其与之后的进行比较,删去不同的部分。

这里使用了c++函数erase(),有三种用法:https://blog.csdn.net/xueluowutong/article/details/81016581

(1)erase( pos, n); 删除从pos开始的n个字符,例如erase(0,1),删除0位置的一个字符,即删除第一个字符

(2)erase( position); 删除position处的一个字符(position是个string类型的迭代器)

(3)erase(first,last);删除从first到last之间的字符,(first和last都是迭代器)

 1 class Solution {
 2 public:
 3     string longestCommonPrefix(vector<string>& strs) {
 4         string same = strs[0];
 5         for(int i =1;i<strs.size();i++){
 6             for(int j=0;j<same.size();j++){
 7                 if(same[j] != strs[i][j]) same.erase(j);
 8             }
 9         }
10         return same;   
11     }
12 };
————————

字符串的基本操作对象通常是字符串整体或者其子串,很多时候我们希望对子串进行操作,这是字符串与数组不同的地方之一。且字符串部分操作比数组更加复杂,如比较和连接操作。在c++中,字符串可以用==来实现比较,也可以直接进行连接操作,但是在其他语言如java中不可以直接实现且字符串不可变。

1.查找字符串最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 。

""

输入:strs = [“flower”,”flow”,”flight”]输出:”fl”

输入:strs = [“dog”,”racecar”,”car”]输出:””

思路:由于寻找公共前缀,不妨设置第一个为公共前缀,然后将其与之后的进行比较,删去不同的部分。

这里使用了c++函数erase(),有三种用法:https://blog.csdn.net/xueluowutong/article/details/81016581

(1)erase( pos, n); 删除从pos开始的n个字符,例如erase(0,1),删除0位置的一个字符,即删除第一个字符

(2)erase( position); 删除position处的一个字符(position是个string类型的迭代器)

(3)erase(first,last);删除从first到last之间的字符,(first和last都是迭代器)

 1 class Solution {
 2 public:
 3     string longestCommonPrefix(vector<string>& strs) {
 4         string same = strs[0];
 5         for(int i =1;i<strs.size();i++){
 6             for(int j=0;j<same.size();j++){
 7                 if(same[j] != strs[i][j]) same.erase(j);
 8             }
 9         }
10         return same;   
11     }
12 };