字符串
字符串题目
南风不知意182
这个作者很懒,什么都没留下…
展开
-
leetcode 344 反转字符串1and2
class Solution {public: void reverseString(vector<char>& s) { for(int i=0,j=s.size()-1;i<s.size()/2;++i,--j) { swap(s[i],s[j]); } }};class Solution {public: string reverseStr(string s, int.原创 2022-04-09 14:56:13 · 270 阅读 · 0 评论 -
leetcode804 唯一的摩斯密码词
const static string mosi[]={".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};//思路:这里使用unordered_set是为了排除相同,我们将翻译好的摩斯密码放入set,不同单词翻译数量就是set的大小.原创 2022-04-10 17:24:00 · 294 阅读 · 0 评论 -
leetcode 151 颠倒字符串中的单词
我这里分为3个步骤:去除多余空格 翻转字符串 使用指针截出每一个单词的长度,在翻转回来 class Solution {public: void reverse(string&s,int start,int end) { for(int i=start,j=end;i<j;++i,--j) swap(s[i],s[j]); } //去除空格,用双指针 void removespace(string&s)原创 2022-04-11 14:58:54 · 115 阅读 · 0 评论 -
leetcode 键指offer 05 替换空格
class Solution {public: string replaceSpace(string s) { //首先我们需要知道s串中有多少空格,扩充数组 int count=0; int oldsize=s.size(); //遍历字符串,计算空格 for(int i=0;i<s.size();++i) { if(s[i]==' ') cou.原创 2022-04-11 14:13:12 · 94 阅读 · 0 评论 -
leetcode 左旋转字符串
class Solution {public: string reverseLeftWords(string s, int n) { //翻转前k个字符,翻转k到末尾的字符,然后整体翻转 reverse(s.begin(),s.begin()+n); reverse(s.begin()+n,s.end()); reverse(s.begin(),s.end()); return s; }};...原创 2022-04-12 13:44:30 · 94 阅读 · 0 评论 -
kmp算法的理解
其实我感觉kmp算法就是bf算法的改进升级,区别在于遇到不同时,不需要回溯到子串的头那里,kmp算法需要构建一个next数组,记录最长相等前后缀。class Solution {public: void getnext(int*next,const string s) { int j=0; next[0]=0; for(int i=1;i<s.size();++i) { if(j>原创 2022-04-12 14:47:25 · 113 阅读 · 0 评论 -
leetcode806 写字符串需要的行数
const int MAXWITH=100;class Solution {public: vector<int> numberOfLines(vector<int>& widths, string s) { //直接遍历 int line=1;//从第一行开始 int width=0;//记录需要的宽度,widths是a到z需要的单位 for(auto&c:s) { .原创 2022-04-12 13:36:58 · 195 阅读 · 0 评论