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

leedcode刷题--day7(字符串)

23

文章讲解
力扣地址

在这里插入图片描述
C++

class Solution {
public:void reverseString(vector<char>& s) {int left = 0;int right = s.size() - 1; // right 应该初始化为 s.size() - 1while (left < right) {swap(s[left], s[right]); // 直接交换 s[left] 和 s[right] 的值left++;right--;}}
};

Python

class Solution(object):def reverseString(self, s):""":type s: List[str]:rtype: None Do not return anything, modify s in-place instead."""left=0n = len(s)-1right=nwhile(left<right):s[left], s[right] = s[right], s[left]left+=1right-=1

24

文章讲解
力扣地址
在这里插入图片描述

class Solution {
public:string reverseStr(string s, int k) {int n = s.size();for (int i = 0; i < n; i += 2*k) {//每次处理2k个字符int left = i;int right = min(i + k - 1, n - 1);while (left < right) {swap(s[left], s[right]);left++;right--;  // 更新 left 和 right 的值}}return s;}
};
class Solution(object):def reverseStr(self, s, k):""":type s: str:type k: int:rtype: str"""s1=list(s)left=0right=0n = len(s1)for i in range(0,n,2*k):left = iright=min(i+k-1,n-1)while left<right:s1[left],s1[right]=s1[right],s1[left]left+=1right-=1return "".join(s1)

25:

文章讲解
题目地址
在这里插入图片描述

#include <iostream>
#include <string>
using namespace std;int main()
{string s;while(getline(cin, s)){string result = ""; // 用于存储替换后的字符串for(int i = 0; i < s.length(); i++){if(isdigit(s[i])){ // 判断字符是否为数字result += "number";} else {result += s[i];}}cout << result << endl;}return 0;
}

判断是不是数字 isdigit(s[i)

while True:try:s = input()s1 = list(s)for i in range(len(s1)):if s1[i]>='0' and s1[i]<='9':s1[i]="number"print(''.join(s1))except:break

这里注意 ’ '.join(s1)


26

文章讲解
题目地址

在这里插入图片描述
先翻转字符串再翻转每个单词

然后删除多余空格

在这里插入图片描述

reverse(s.begin(),s.end());

if(s[start]!=’ ‘)如果不是空格,说明新单词开始
if(idx!=0) s[idx++]=’ ’ 如果新单词不是第一个单词,加入前单词末尾空格

int end = start;
while(wend<n && s[end]!=‘’)
s[idx++]=s[end++]
通过一个while循环,找到完整的单词

reverse(s.begin()+idx-(end-start),s.begin()=idx);翻转单词

class Solution {
public:string reverseWords(string s) {// 反转整个字符串reverse(s.begin(), s.end());int n = s.size();int idx = 0;for (int start = 0; start < n; ++start) {if (s[start] != ' ') {// 填一个空白字符然后将idx移动到下一个单词的开头位置if (idx != 0) s[idx++] = ' ';// 循环遍历至单词的末尾int end = start;while (end < n && s[end] != ' ') s[idx++] = s[end++];// 反转整个单词reverse(s.begin() + idx - (end - start), s.begin() + idx);// 更新start,去找下一个单词start = end;}}s.erase(s.begin() + idx, s.end());return s;}
};

在这里插入图片描述

class Solution(object):def reverseWords(self, s):""":type s: str:rtype: str"""words = s.split()words = words[::-1]result = ' '.join(words)return result
http://www.lryc.cn/news/309021.html

相关文章:

  • 【蓝桥杯省赛真题31】python连续正整数之和 中小学青少年组蓝桥杯比赛python编程省赛真题解析
  • 【116个】网络安全测试相关面试真题
  • 微服务day02-Ribbon负载均衡与Nacos安装与入门
  • 深度学习-神经网络原理
  • Chat GPT:智能对话的下一步
  • [数据集][目标检测]鸡蛋破蛋数据集VOC+YOLO格式792张2类别
  • RabbitMQ实战学习
  • 插混、油混、增程式、轻混、强混,啥区别
  • React 模态框的设计(八)优化补充
  • 知识积累(三):深度学习相关概念(查看检索时看到)
  • 计算机专业必看的几部电影
  • 工业人工智能需要注意的10件事
  • 软考-系统集成项目管理中级-信息系统建设与设计
  • C++从零开始的打怪升级之路(day39)
  • Java面试题之并发
  • Python GUI自动化定位代码参考
  • 11.网络游戏逆向分析与漏洞攻防-游戏网络架构逆向分析-接管游戏接收网络数据包的操作
  • 特斯拉一面算法原题
  • 【Leetcode每日一题】二分查找 - 山脉数组的峰顶索引(难度⭐⭐)(23)
  • Linux添加用户分组练习
  • 云快充充电桩系统设计书
  • oracle DG 原理
  • MySQL篇—持久化和非持久化统计信息介绍(第一篇,总共三篇)
  • Leetcode—65. 有效数字【困难】
  • 【Java程序设计】【C00322】基于Springboot的高校竞赛管理系统(有论文)
  • 41、网络编程/TCP.UDP通信模型练习20240301
  • Python中操作MySQL和SQL Server数据库的基础与实战【第97篇—MySQL数据库】
  • 【兔子机器人】五连杆运动学解算与VMC(virtual model control)
  • 学习鸿蒙基础(6)
  • 标准PoE交换机、非标准PoE交换机和非PoE交换机三者到底有何区别?