栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

跟着代码随想录之字符串

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

跟着代码随想录之字符串

string类型在c++中使用时,需要加上头文件

#include < string >
using std::string;

拷贝初始 string s = “value”;
直接初始化 string s(“value”);

单引号:字符 string s=“sbcdef”,其中每个字符的提取使用单引号char s[1]=‘b’
双引号:字符串 string s=[“2”, “1”, “+”, “3”, " * "],string s[1]=“1”

string:size_type() 类型????
反转字符串

使用前后指针,两边交换

class Solution {
public:
    void reverseString(vector& s) {
        int i=0,j=s.size()-1;
        while(i<=j){
            int tmp = s[i];
            s[i++] = s[j];
            s[j--] = tmp;
        }
    }
};

反转字符串II

class Solution {
public:
    string reverseStr(string s, int k) {
        //int i=0,j=k-1;
        for(int i=0;i//表示每次开始的下标
            int left=i,right = i+k-1;
            if(right>s.size()-1) right = s.size()-1;//当出现右边下标大于字符串长度时,使得右下标表示字符串最右边的下标
            while(right>=left){
                swap(s[right--],s[left++]);
            }
        }
    return s;
    }
};

替换空格

 string replaceSpace(string s) {
        vectorvec_str;
        string tmp;
        for(int i=0;i
            if(s[i]==' ') {
                vec_str.push_back(tmp);
                tmp.clear();
            }
            else tmp += s[i]; 
        }
        vec_str.push_back(tmp);
        tmp.clear();
        for(int i=0;i
            tmp += vec_str[i];
            tmp +="%20";
        }
        tmp += vec_str[vec_str.size()-1];
        return tmp;
    }
string replaceSpace(string s) {
       int count=0;
       for(int i=0;i
           if(s[i]==' ') count++;
       }
       int oldsize = s.size();
       int newsize = oldsize+2*count;
       s.resize(newsize);
       for(int i=newsize-1,j=oldsize-1;i>j;i--,j--){
           if(s[j]!=' ') s[i]=s[j];
           else{
               s[i--]='0';
               s[i--]='2';
               s[i]='%';
           }
       }
       return s;
    }

反转单词

class Solution {
public:
    void removeEmpty(string& s){
        int slow=0, fast=0;
        while(s.size() > 0 && fast< s.size() && s[fast]==' ') fast++;
        for(;fast
            if(fast-1>0&&s[fast]==s[fast-1]&&s[fast]==' '){
                continue;
            }
            else s[slow++]=s[fast];
        }
        if(slow-1>0 && s[slow-1]==' ') s.resize(slow-1);
        else s.resize(slow);
    }
    void reverse(string &s,int begin,int end){
        while(begin
        removeEmpty(s);
        reverse(s,0,s.size()-1);
        int left=0,right=0;
        for(;right
           if (s[right] == ' ') {
				reverse(s, left, right - 1);
				left = right + 1;
			}
			if(right == s.size() - 1) reverse(s, left, right);
        }
        return s;
    }
    
};
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/917315.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号