c++ 字符串反转问题

现在开始要好好学习了,开始利用写博客记录学习内容、过程和思路。
问题出自https://leetcode.com/problems/reverse-string/ 字符串反转问题。
上述是一个很好的练习算法、编程的网站

问题描述

Write a function that takes a string as input and returns the string reversed.

Example:
Given s = “hello”, return “olleh”.

该问题要求反转字符串。
我这里提出了两种思路
(1)新建一个字符串,将原字符串一个个倒序赋值给新字符串

class Solution {
public:
    string reverseString(string s) {
        string str2=s;
        int nlen=s.size();
        for(int i=0;i<nlen;i++)
        {str2[i]=s[nlen-i-1];}
        return str2;
    }
};

(2)第二种思路是直接在原序列中交换第i个和第s.size()-i个的位置,循环s.size()/2次

class Solution {
public:
    string reverseString(string s) {
        int temp;
        int n=s.size();
        for(int i=0;i<n/2;i++)
        {temp=s[i];
            s[i]=s[n-i-1];
            s[n-i-1]=temp;
        }
        return s;
    }
};

注意int i是从0开始。
这道题在leetcode算简单的题。下次打算学习STL,对string、vector等不是很熟,string很多功能比char要方便。打好基础很重要!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值