文档章节

基础算法----实现反转字符串

春哥大魔王的博客
 春哥大魔王的博客
发布于 2017/02/27 13:16
字数 195
阅读 7
收藏 0

前言

字符串反转是一道经典的算法题,思想比较简单:

  1. 数组的第一位和最后一位互换;
  2. 数组第二位和倒数第二位互换;
  3. ......
  4. 递归完结条件为取到中间值:start == end;

实现

string str = "1234";

char[] arr = str.ToArray();
int start = 0;
int end = arr.Length-1;

#region 反转
static void rollback(char[] arr, int start, int end)
{
            /**
            * 分成两部分看:排列完成,待排列
            *
            * start和end部分为排列完成,start+1之后为待排列,最后end和start置换。
            */
    while (end > start)//排列次数,是整个数组的长度
    {
        char temp = arr[start];
        for (int i = start + 1; i <= end; i++)
        {
            arr[i - 1] = arr[i];
        }
        arr[end] = temp;
        end--;
    }

    for (int i = 0; i < arr.Length; i++)
    {
        System.Console.Write(arr[i]);
    }
    System.Console.Write("\n");
}
#endregion

结果

反转结果

源码

http://git.oschina.net/aspnet/Suan-Fa

© 著作权归作者所有

共有 人打赏支持
春哥大魔王的博客
粉丝 19
博文 141
码字总数 84727
作品 0
海淀
程序员
# LeetCode基础算法-字符串

LeetCode基础算法-字符串 LeetCode 算法 字符串 1. 翻转字符串 编写一个函数,其作用是将输入的字符串反转过来。 解题思路: 双指针法。 low = 0 ,high = 字符串长度-1,low与high逐步逼近。...

24K男
09/07
0
0
反转字符串中的单词

原题   Given an input string, reverse the string word by word.   For example,   Given s = ,   return . 题目大意   给定一个字符串,将其反转,其的字词不转 解题思路  先对...

一贱书生
2016/12/26
5
0
编程珠玑--旋转算法

旋转算法出自《编程珠玑》第二章题目。 《编程珠玑》一书对算法是极度推崇,这点意识在我们看书的时候每每都有被灌输。使用一种好的算法往往能使得程序更加漂亮,也很能带给我们程序员某种满...

王二狗子11
01/08
0
0
算法知识梳理(9) - 链表算法第一部分

面试算法代码知识梳理系列 算法知识梳理(1) - 排序算法 算法知识梳理(2) - 字符串算法第一部分 算法知识梳理(3) - 字符串算法第二部分 算法知识梳理(4) - 数组第一部分 算法知识梳理(5) - 数...

泽毛
2017/12/17
0
0
Android第三十天

一:编程设计原则 1.DIP (Dependence Inversion Principle) 依赖反转原则: 具体类(实现细节)应该依赖于抽象(抽象类、接口)。 应该针对接口编程。 2.LOD (迪米特原则) 最少知识原则,一个对...

黄晓磊
2016/07/11
14
0

没有更多内容

加载失败,请刷新页面

加载更多

android -------- MVP+DataBinding 的使用

天来说说MVP+DataBinding 的使用 以一个登录案例来讲解 布局:(ConstraintLayout 作为根布局) <layout> <data> <variable name="onClick" ......

切切歆语
31分钟前
1
0
阿里十年Java架构经验总结,这几点尤为重要!

你有没有静下心来思考过:同样是做了x年Java开发,为什么你的技术比别人差很多?为什么别人每月28K你却只有10K? 其实技术水平的高低和个人智商关系不大(毕竟能做Java编程开发大家都不会差)...

别打我会飞
35分钟前
1
0
Ubuntu 中安装和配置 Caddy 服务

首先访问:https://caddyserver.com/download 选择操作系统、插件和授权类型,点击 Download 下载编译好的文件包,或者执行页面最下面的一键安装脚本,完成 caddy 的安装。 安装完成后,/us...

八风不动
51分钟前
2
0
java代码效率优化

1、 尽量指定类的final修饰符 带有final修饰符的类是不可派生的。 2、 尽量重用对象。 3、 尽量使用局部变量,调用方法时传递的参数以及在调用中创建的临时变量都保存在栈(Stack)中,速度较...

踏破铁鞋无觅处
今天
3
0
程序员的几款利器

1. 作为程序员,最希望的就是自己的代码能够在一个云平台上保留下来,gitlab等等这些很多。但是我这里推荐“码云平台”码云平台和开源中国可以直接关联起来。开源中国可以记录博客,当然也是...

ChinaHYF
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部