字符串反转

#include <iostream>
#include <cstdio>
#include <cstring>

using namespace std;

/*
//解法一:
//时间复杂度为:O(K * N),
//空间复杂度: O(1)
char * Reverse(char *pStr, int len,  int size)
{
    len = len % size;//if len > size, it will be a recyle
    for (int i = size-1; i >= len; i--)
    {
        char tmp = pStr[size-1];
        for (int j = size-1; j >= 1; j--)
        {
            pStr[j] = pStr[j-1];
        }
        pStr[0] = tmp;
       // puts(pStr);
    }
    return pStr;
}
*/

//解法二:
//设src = "1234abc", dest = "abc1234"
//T = "1234", D = "abc"
//则 (T^D^)^ = DT

inline void Swap(char &lps, char &rps)
{
    char tmp = lps;
    lps = rps;
    rps = tmp;
}

void Reverse(char *pSrc, int pos, int size)
{
    char *pBegin = pSrc + pos,
         *pEnd = pSrc +  size- 1;

    while (pBegin < pEnd)
    {
        Swap(*pBegin, *pEnd);
        pBegin ++;
        pEnd --;
    }
    puts(pSrc);
}

int main()
{
    char str[] = "1234abc";
    int len = strlen(str);

    Reverse(str, 0, 4);//反转前4个字符
    Reverse(str, 4, len);//反转后三个字符
    Reverse(str, 0, len);//整体反转

    puts(str);

    return 0;
}
时间: 2024-10-03 12:02:54

字符串反转的相关文章

php实现字符串反转输出的方法

 本文实例讲述了php实现字符串反转输出的方法.分享给大家供大家参考.具体分析如下: php中带有一个很简单的函数用于字符串反转,即strrev() <?php print strrev('This is not a palindrome.'); ?> 输出结果如下 .emordnilap a ton si sihT 希望本文所述对大家的php程序设计有所帮助. 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php ,

用 ava实现字符串反转-用Java实现字符串反转

问题描述 用Java实现字符串反转 解决方案 这么多种,自己看吧http://www.oschina.net/code/snippet_12_9060 解决方案二: java里哪里来的指针?你的题目分明是C的.再说,这种问题自己google就有结果了. 解决方案三: public class test{public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print("&

使用C语言递归与非递归实现字符串反转函数char *reverse(char *str)的方法_C 语言

代码如下所示: 复制代码 代码如下: // 递归实现字符串反转   char *reverse(char *str)   {    if( !str )    {     return NULL; }       int len = strlen(str);       if( len > 1 )       {           char ctemp =str[0];           str[0] = str[len-1];              str[len-1] = '/0';

php实现字符串反转输出的方法_php技巧

本文实例讲述了php实现字符串反转输出的方法.分享给大家供大家参考.具体分析如下: php中带有一个很简单的函数用于字符串反转,即strrev() <?php print strrev('This is not a palindrome.'); ?> 输出结果如下 .emordnilap a ton si sihT 希望本文所述对大家的php程序设计有所帮助. 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php ,

iostream-将abcd字符串反转dcba,老师昨天刚说,但是忘了哪里出问题了,求大神

问题描述 将abcd字符串反转dcba,老师昨天刚说,但是忘了哪里出问题了,求大神 #include #include using namespace std; string f(string s) { if(s.length()==1) return s; else return f(s.substr(1))+s.substr(0,1); } main() { string s='abcd'; cout<<f(s); } 解决方案 其实不是你的错啦,你的住函数没有写类型 void main(

总结java将字符串反转的7个方法

以下是收集的7种字符串反转的java方法,每个性能和难度不一样,我们可以选择一种最适合自己的. import java.util.Stack; public class StringReverse { // 方法一  public static String reverse1(String s) {  int length = s.length();  if (length <= 1)   return s;  String left = s.substring(0, length / 2); 

php/python/js中实现字符串反转函数

JS  代码如下 复制代码 function str_reverse(str){     return str.split('').reverse().join(''); } PHP  代码如下 复制代码 function str_reverse($str){     return implode( array_reverse( str_split($str) ) ); } Python  代码如下 复制代码 def str_reverse(string):     L = list(strin

字符串反转_JavaScript_javascript技巧

今天在freeCodeCamp上面刷题,碰到一题是有关于字符串反转.反转一个字符串是JavaScript中常见的面试题之一.可能面试官会给你一个字符串"Hello Word!",让你通过JavaScript的方法,将其变成"!droW olleH". 我也是初学者,利用前面所学数组相关的知识以及题目的提示,我算是过关了,后来想,是不是还有其他的方法能破此题呢?搜索了一下,还是有不少的方法,这里把这些方法罗列一下,以备后面可以使用. 要做的事情 我们要做的事情: 将提

Shell中实现字符串反转方法分享_linux shell

在做关键词清洗过程中,需要将一类不符合某个字结尾的词过滤出来,思路是把这一批词按最后一个字排序,于是想到了先把这些词反转一下,如把12345转为54321,好像以前在夜息的文章里看过用shell可以实现,就百度了一下,找到几个可行的解决方法,现记录一下. shell实现字符串反转,一句命令搞定! 复制代码 代码如下: cat keywords.txt|while read line;do echo $line|rev;done 命令的: 复制代码 代码如下: echo 12345|rev 543

javascript实现字符串反转的方法_javascript技巧

本文实例讲述了javascript实现字符串反转的方法.分享给大家供大家参考.具体实现方法如下: //变量交换 方法 var a=0,b=1,c=2; a=[b,b=c,c=a][0]; //正文 var array='abcdefgh'; function Reverse(arr){ var arr1=arr.split('');//[a,b,c,d,e,f,g] var halfLen=Math.floor(arr.length/2);//3 alert(halfLen) var len=a