文档章节

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

春哥大魔王的博客
 春哥大魔王的博客
发布于 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
博文 160
码字总数 110962
作品 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
LeetCode算法题-Reverse Bits(Java实现)

这是悦乐书的第185次更新,第187篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第44题(顺位题号是190)。给定32位无符号整数,求它的反转位。例如: 输入:43261596 输出:9...

小川94
11/28
0
0
Android第三十天

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

黄晓磊
2016/07/11
14
0

没有更多内容

加载失败,请刷新页面

加载更多

mysql 时间格式化

DATE_FORMAT

1713716445
3分钟前
0
0
聊聊flink的PartitionableListState

序 本文主要研究一下flink的PartitionableListState PartitionableListState flink-runtime_2.11-1.7.0-sources.jar!/org/apache/flink/runtime/state/DefaultOperatorStateBackend.java /*......

go4it
8分钟前
0
0
Micropython教程之TPYBoard开发板制作电子时钟(萝卜学科编程教育)

1.实验目的 1. 学习在PC机系统中扩展简单I/O?接口的方法。 2. 什么是SPI接口。 3. 学习TPYBoard I2C接口的用法。 4. 学习LCD5110接线方法。 5. 设定时钟并将当前时间显示在LCD5110上。 2.所需...

bodasisiter
9分钟前
0
0
js 闭包

闭包,是 Javascript 比较重要的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是 ECMAScript 规范给的定义,如果没有实战经验,很难从定义去理解它。因此,本文不会对闭包的概念...

MrBoyce
13分钟前
0
0
Java B2B2C o2o多用户商城 springcloud架-企业云架构common-service代码结构分析

当前的分布式微服务云架构平台使用Maven构建,所以common-service的通用服务按照maven构建独立的系统服务,结构如下: particle-commonservice: spring cloud 系统服务根项目,所有服务项目...

itcloud
19分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部