当前位置: 首页 > 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.jsqmd.com/news/39751/

相关文章:

  • 2025年西北地区新媒体运营公司最新TOP5评测:AI赋能陕西甘肃品牌增长新引擎
  • 20251113日报
  • 控制领域常用希腊字母表
  • Windows 修改hosts不生效
  • 早就下好了IEDA,也算是差生文具多了
  • Pyinstaller - Python桌面应用打包的首选工具 - 详解
  • DNS record types: AAAA vs AA All In One
  • 关于Langchain更新解决Memory的引用
  • win7 打开 icmp-ping 回显
  • 旋转矩阵在导航与机器人中的应用
  • JVM之锁优化(自旋锁 适应性自旋 锁消除 锁粗化 轻量级锁 偏向锁) - 教程
  • 面试官问:什么是Java内存模型? - 教程
  • Spring AI Alibaba 项目源码学习(四)-Graph中的存储分析
  • 20251113 正睿
  • 好消息,.NET 10 正式发布,更智能、更安全、更高性能的统一开发平台!
  • 从Dalvik字节码角度优化安卓编码
  • 基于Java+SSM+Flask家庭理财系统(源码+LW+调试文档+讲解等)/家庭理财/理财系统/家庭财务/家庭财务规划/家庭账目/家庭财务软件/家庭记账/理财器具/财务多元化/资产管理。
  • leetcode6. Z 字形变换
  • 深入解析:洞穴人的仰望:洞穴人隐喻与进步主义的歧途
  • 《JIRA:项目管理与敏捷开发实践》
  • 20232319 2025-2026-1 《网络与系统攻防技术》实验五实验报告
  • 主动交互和情境感知,AI 硬件是脱离手机屏幕掌控的蓝海机会丨硬件和端侧模型专场@RTE2025 回顾
  • WSL移植小记
  • 2025年西北数字人厂商最新TOP5评测:引领陕西甘肃智区域能交互新生态
  • centos 环境下部署mongodb并设定密码
  • 20232317 2025-2026-1 《网络与系统攻防技术》实验四实验报告
  • 谷歌起诉网络犯罪团伙Smishing Triad,揭露大规模钓鱼攻击
  • PLC与单片机区
  • 2025.11.13总结
  • .NET+AI | MEAI | .NET 平台的 AI 底座 (1)