首页 > 编程语言 >代码随想录算法训练营第八天 | 344.反转字符串、541. 反转字符串II、卡码网:54.替换数字

代码随想录算法训练营第八天 | 344.反转字符串、541. 反转字符串II、卡码网:54.替换数字

时间:2024-07-16 18:25:16浏览次数:14  
标签:begin string int 反转 随想录 54 字符串 reverse

344.反转字符串

题目:. - 力扣(LeetCode)

思路:用swap遍历一个循环就行了。

代码:

class Solution {
public:
    void reverseString(vector<char>& s) {
    for(int i=0;i<s.size()/2;++i){
        swap(s[i],s[s.size()-i-1]);
    }
    }
};

541. 反转字符串II

题目:. - 力扣(LeetCode)

思路:关键是for循环每次遍历2k个字符,然后在循环中调用库函数reverse。

代码:

class Solution {
public:
    string reverseStr(string s, int k) {
    for(int i=0;i<s.size();i+=2*k){
        if(s.size()-i>=k)
        reverse(s.begin()+i,s.begin()+i+k);
        else
        reverse(s.begin()+i,s.end());
    }
    return s;
    }
};

卡码网:54.替换数字

题目:54. 替换数字(第八期模拟笔试)

思路:数组填充使用后序遍历,注意改变字符串长度。

代码:

#include <bits/stdc++.h>
using namespace std;
int main(){
    string s;
    cin>>s;
    int sOldIndex=s.size()-1;
    int count=0;
    for(char i:s){
        if(i>='0'&&i<='9')
        count++;
    }
    s.resize(s.size()+count*5);
    int sNewIndex=s.size()-1;
    while(sOldIndex>=0){
        if(s[sOldIndex]>='0'&&s[sOldIndex]<='9'){
            s[sNewIndex--]='r';
            s[sNewIndex--]='e';
            s[sNewIndex--]='b';
            s[sNewIndex--]='m';
            s[sNewIndex--]='u';
            s[sNewIndex--]='n';
        }
        else{
            s[sNewIndex--]=s[sOldIndex];
        }
        sOldIndex--;
    }
    cout<<s<<endl;
    return 0;
}

标签:begin,string,int,反转,随想录,54,字符串,reverse
From: https://blog.csdn.net/dtgfhfd/article/details/140327804

相关文章

  • 「代码随想录算法训练营」第十二天 | 二叉树 part2
    226.翻转二叉树题目链接:https://leetcode.cn/problems/invert-binary-tree/题目难度:简单文章讲解:https://programmercarl.com/0226.翻转二叉树.html视频讲解:https://www.bilibili.com/video/BV1sP4y1f7q7题目状态:通过个人思路:类似二叉树的层序遍历的变形,创建一个队列,先......
  • JavaScript字符串对象查找字符出现次数
      查找字符串中某个字符出现的次数思路:1.根据indexOf()方法的特性只会返回要查找的字符出现再字符串中的第一次的位置     2.而且想要继续往后查找则需要跳过前一个已经查询了的字符的位置,则可以在原先位置加       1后再查找     3.将......
  • 104-Python中字符串索引和切片
    Python中字符串索引和切片greeting_str='Hey,James!'#打印字符串长度print('字符串的长度为:')print(len(greeting_str))#字符串的长度为:#11#打印每个字符和对应的索引forindex,charinenumerate(greeting_str):print(f"字符:{char},索引:{index}")#字符:H,索......
  • 代码随想录算法训练营第23天 | 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树
    代码随想录算法训练营第22天|669.修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树修剪二叉搜索树:https://leetcode.cn/problems/trim-a-binary-search-tree/description/代码随想录:https://programmercarl.com/0669.修剪二叉搜索树.html#......
  • QT字符串QString
    QString#include<QString>追加字符QStringstr1="hello";QStringstr2="world";str1.append(str2);//str1="helloworld"str1.append("!");//str1="helloworld!......
  • 字符串反转、句子逆序 题目
    题目HJ12字符串反转描述输入描述:输出描述:示例:分析:代码:大佬代码:HJ13句子逆序描述输入描述:输出描述:示例:分析:代码:大佬代码:HJ12字符串反转描述接受一个只包含小写字母的字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)输入描述:输入一行,为一个......
  • 算法思想总结:字符串
    一、最长公共前缀.-力扣(LeetCode)思路1:两两比较 时间复杂度mn 实现findcomon返回两两比较后的公共前缀classSolution{public:stringlongestCommonPrefix(vector<string>&strs){//两两比较stringret=strs[0];size_tn=strs......
  • 力扣第八题——字符串转换整数
    题目介绍请你来实现一个 myAtoi(strings) 函数,使其能将字符串转换成一个32位有符号整数。函数 myAtoi(strings) 的算法如下:空格:读入字符串并丢弃无用的前导空格("")符号:检查下一个字符(假设还未到字符末尾)为 '-' 还是 '+'。如果两者都不存在,则假定结果为正。转换:......
  • 代码随想录算法训练营第十三天 | 144.二叉树的前序遍历、94、二叉树的中序遍历、145、
    144.二叉树的前序遍历题目:.-力扣(LeetCode)思路:有递归法和使用栈来模拟递归的迭代法。代码:1.递归/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nu......
  • 代码随想录day25 复原IP地址 | 子集 | 子集II
    复原IP地址复原IP地址解题思路首先要判断什么是正确的IP地址:段位以0为开头的数字不合法段位里有非正整数字符不合法段位如果大于255了不合法接着就是要通过一个变量来存储加'.'的次数,然后将字符串分成四分,每段都需要检查是否符合条件。知识点回溯(分割),字符串心得这是......