代码随想录第8天


### 344
```C++
class Solution {
public:
    void reverseString(vector<char>& s) {
        int left=0,right=s.size()-1;
        char temp;
        while(left<right){
            temp=s[right];
            s[right]=s[left];
            s[left]=temp;
            left++;
            right--;
        }

    }
};
```


### 541
```c++
class Solution {
public:
    void reverse(string& s,int start,int end){
        while(start<end){
            swap(s[start++],s[end--]);
        }

    }
    string reverseStr(string s, int k) {
        int i=0;
        while(i<s.size()){
            if(i+k<s.size()&&i+2*k>s.size()){
                reverse(s,i,i+k-1);
                break;
            }else if(i+k>s.size()){
                reverse(s,i,s.size()-1);
                break;
            }
            reverse(s,i,i+k-1);
  
            i+=2*k;

        }
        return s;

    }
};
```

### 剑指offer 05
```C++
class Solution {
public:
	void replaceSpace(char *str,int length) {
		int i=0;
		int ordSize=length,count=0;
		while(i<length){
			if(str[i]==' '){
				count++;
			}
			i++;
		}
		i=length-1;
		for(int j=length+(2*count)-1;j>=0,i<j;i--,j--){
			if(str[i]==' '){
				str[j--]='0';
				str[j--]='2';
				str[j]='%';
				cout<<str[j]<<endl;
			}else{
				str[j]=str[i];
			}
		}

	}
};

```

### 剑指offer 58
```c++
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param str string字符串 
     * @param n int整型 
     * @return string字符串
     */
    void reverse1(string& str, int start,int end){
        while(start<end){
            swap(str[start++],str[end--]);
        }

    }
    string LeftRotateString(string str, int n) {
        // write code here
        if(str.empty()){
            return str;
        }
        int m=n%str.length();
        reverse1(str,0,m-1);
        reverse1(str,m,str.length()-1);
        reverse1(str,0,str.length()-1);
        return str;

    }
};

```

### 151
```C++
class Solution {
public:
 void reverse1(string& str, int start,int end){
        while(start<end){
            swap(str[start++],str[end--]);
        }

    }

    string reverseWords(string s) {
        int i=0;
        int count=0;
        reverse1(s,0,s.length()-1);
        while(s[0]==' '){
     
            s.erase(0,1);

        }
        cout<<s<<endl;
        for(int i=0;i<s.length();i++){
            if(i>0&&s[i-1]==' '&&s[i]==' '){
                s.erase(i,1);
                i--;
            }

            if(s[i]==' '&&i!=0){
        
                reverse1(s,count,i-1);
        
                count=i+1;
            }
            if(i==s.length()-1&&s[i]!=' '){
    
                reverse1(s,count,i);
        
            }
        }
        while(s[s.length()-1]==' '){
     
            s.erase(s.length()-1,1);

        }
        return s;
    }

};
```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值