当前位置: 首页 > news >正文

代码随想录Day9_字符串2

27. 移除元素 - 力扣(LeetCode)

class Solution {
public:int removeElement(vector<int>& nums, int val) {int Slow=0;for(int Fast=0;Fast<size(nums);Fast++){if(nums[Fast]!=val){nums[Slow]=nums[Fast];Slow++;}}return Slow;}
};

151. 反转字符串中的单词 - 力扣(LeetCode)

//题目描述:反转一个句子中的单词顺序,去除多余的空格。
/*思路: 1.先去除句子开头空格;2.将多个空格缩减为一个空格。3.去除结尾空格;实现:1.当是第一个下标,走;2.快指针往前走,如果连续两个字符是空格,则跳出循环?*/
#include<iostream>
#include<string>    
using namespace std;
class Solution {
public:void removeExtraSpaces(string &s) {int Slow=0;int Fast=0;while(Fast==0&&s[Fast]==' '){Fast++;}for(;Fast<size(s);Fast++){if (s[Fast]==' '&&s[Fast-1]==' '){continue;//跳过连续的空格
            }else {s[Slow]=s[Fast];Slow++;}}if(Slow-1>0&&s[Slow-1]==' '){s.resize(Slow-1);}else{s.resize(Slow);}}void reverse(string & s,int start,int end){int j;for(int i=start,j=end;i<j;i++,j--){swap(s[i],s[j]);}}string reverseWords(string s){removeExtraSpaces(s);reverse(s,0,size(s)-1);int start=0;for(int i=0;i<=size(s);++i){        if(i==size(s)||s[i]==' '){reverse(s,start,i-1);start =i+1;}}return s;}
};
int main(){Solution sol;string s="  the   sky  is blue  ";string result=sol.reverseWords(s);cout<<result<<endl;return 0;
}

字符串总结:

反转一个单词--用头尾两个指针交换;

反转前k个单词-----增加了边界的判断;

反转字符串中的单词----去首尾和重复空格+整体反转+遇到空格反转单词。

找出字符串与给定字串第一个匹配字符的下标。

28. 找出字符串中第一个匹配项的下标 - 力扣(LeetCode)

题目描述:返回串中给定字串的第一个下标

暴力解法:

相当于我拿着一个needle框去对haystack进行比对。

class Solution {
public:
    int strStr(string haystack, string needle) {
        for (int i = 0; i < haystack.size(); i++) {
            int j;
            for (j=0; j < needle.size(); j++) {
                if (i + j >= haystack.size() || haystack[i + j] != needle[j]) {
                    break;
                }
            }
            if (j==needle.size())
            return i;
    }return -1;
    }

459. 重复的子字符串 - 力扣(LeetCode)

给定一个字符串,判断其是否可由重复的字串构成。

暴力解法思路: (14号写吧)

http://www.zskr.cn/news/48938.html

相关文章:

  • chrono模块
  • 20251113日报
  • Linux 中awk命令如何从文本中提取偶数列和奇数列
  • 早就下好了IEDA,也算是差生文具多了
  • GLM4.6 测评
  • Pyinstaller - Python桌面应用打包的首选工具 - 详解
  • 关于Langchain更新解决Memory的引用
  • Tavus发布多模态数字伙伴PALs,能看、听、推理;李飞飞团队推出首款商用世界模型World Labs Marble丨日报
  • Android 对话框 - 对话框全屏显示(设置 Window 属性、采用自定义样式、继承 DialogFragment 达成、继承 Dialog 建立)
  • 实用指南:每日一个C语言知识:C 数组
  • 2025年陕西短视频制作服务商TOP5实力榜:AI赋能内容创作新时代
  • 好消息,.NET 10 正式发布,更智能、更安全、更高性能的统一开发平台!
  • 从Dalvik字节码角度优化安卓编码
  • 20232319 2025-2026-1 《网络与系统攻防技术》实验五实验报告
  • WSL移植小记
  • 谷歌起诉网络犯罪团伙Smishing Triad,揭露大规模钓鱼攻击
  • .NET+AI | MEAI | .NET 平台的 AI 底座 (1)
  • NOIP2025模拟7
  • 20232304 2025-2026-1 《网络与系统攻防技术》实验六实验报告
  • EUC 2024 题解(瞎写的
  • 图论有关问题
  • 杂记 - 2
  • 算法随笔 - LogTrick
  • 夯实MySQL基础:SQL核心与MySQL入门全解析
  • 400万美元ARR,小企业和个人AI客服Beside融资3200万美元;KalpaLabs:不到1000美元训练语音模型丨日报
  • 优先级队列的学习 - 教程
  • 25.11.13联考题解
  • [CSP-S 2025] 道路修复 road
  • [USACO24JAN] Cowlendar S题解
  • 【A】Shinichi Kudo