字符串反转

题目描述
请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量)。
给定一个string iniString,请返回一个string,为翻转后的字符串。保证字符串的长度小于等于5000。
测试样例:
“This is nowcoder”
返回:”redocwon si sihT”

首先用Python实现:

# -*- coding:utf-8 -*-
class Reverse:
    def reverseString(self, iniString):
        # write code here
        return iniString[::-1]

用Python实现非常的简单,直接使用字符串切片功能,令原字符串倒序输出即可。

再来考虑用C/C++实现:

string reverseString(string iniString)
{
    int i,j,s=iniString.length();
    for(i=0,j=s-1;i<j;i++,j--)
    {
        char temp=iniString[i];
        iniString[i]=iniString[j];
        iniString[j]=temp;
    }
    return iniString;
};

用C实现用的思想很简单,直接定义一个临时字符变量char temp,把字符串的第一个字符inistring[0]赋给临时变量,最后一个字符inistring[len-1]赋给inistring[0],再把temp中的值赋给inistring[len-1],这是最后一个字符。第一趟就完成了首尾字符的互换,需要注意的是终止条件,当字符长度为偶数时,最后两个字符的index相邻,满足i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值