字符串反转

来源:互联网 发布:苹果电脑 装windows 编辑:程序博客网 时间:2024/06/06 18:39

题目描述
请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量)。
给定一个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

0 0
原创粉丝点击