不分配额外空间,直接就地反转字符串,另外还要注意null字符。
void reverse(char *str)
{
char *end = str;
char tmp;
if (str)
{
while (*end)//找出字符串末尾
{
++end;
}
--end;//回退一个字符,最后一个为null的字符
/*从字符串首尾开始交换两个字符,直到两个指针在中间碰头*...
分类:
其他好文 时间:
2015-08-15 23:10:37
阅读次数:
180
本来判断回文串是一件很容易的事情,只需要反转字符串后在与原字符串相比较即可。这道题目明确说明不能使用额外的空间,那么使用将其分解连接成字符串的方法便不是可行的。只好采用数学的方式: 每次取最高位和最低位相比较,总的位数可以用一个while先处理出来,循环直至取余和除数相等。
具体见代码:
class Solution {
public:
bool isPalindrome(int x)...
分类:
其他好文 时间:
2015-07-20 23:42:24
阅读次数:
258
将字符串进行反转
package com.itheima;
/**
* 将字符串中进行反转。abcde --> edcba
*
* 思路
* 1.将此功能封装一个方法
* 2.通过for循环,并通过操作字符 串的方法charAt方法来取出每个字符
* 3.设置一个新字符串ss=="";那么将每次取出来的字符加在字符串ss前面,就可以得到相应
* 字符串的反转字符串
...
分类:
其他好文 时间:
2015-06-18 17:24:55
阅读次数:
80
字符串反正工作中有的时候会遇到,其实跟之前的整数逆序输出是一个道理,当然实现的方法的有很多,有的人写的有七种,能实现就好,就常用的实现了两种,凑合着看下吧:Reverse.h@interface Reverse : NSObject-(void)reverse;-(NSString *)revers...
分类:
编程语言 时间:
2015-06-13 06:14:49
阅读次数:
201
问题描述:
编写一个函数reverse_string(char *srring)(递归实现)
实现:将参数字符串中的字符反向排列。
要求:不能使用处C库函数中的字符串操作函数。
程序分析:
思路如下:
本程序用递归的思想实现这一功能,最关键的一点是要改变'\0'所在的位置。a.先交换字符串最外层的两个字符,同时保存第一个字符的...
分类:
编程语言 时间:
2015-05-11 08:56:46
阅读次数:
210
这段代码大约是10年前写的了,一直收藏在自己的代码仓库里面,贴出来分享下。网上也有很多类似的代码,学生们用的比较多,工作中用的很少,权做参考。char* ReverseString(char* s){ char *p , *q; p = s; q = p + strlen(s) - 1; w...
分类:
编程语言 时间:
2015-04-15 09:31:01
阅读次数:
141
例如,字符串 abcdef ,若要让def翻转到abc的前头,只要按照下述3个步骤操作即可:
首先将原字符串分为两个部分,即X:abc,Y:def; 将X反转,X->X^T,即得:abc->cba;将Y反转,Y->Y^T,即得:def->fed。 反转上述步骤得到的结果字符串X^TY^T,即反转字符串cbafed的两部分(cba和fed)给予反转,cbafed得到defabc,形式化表示为...
分类:
编程语言 时间:
2015-04-13 14:45:04
阅读次数:
192
//将字符串顺序翻转
//如: I am a student 转成:student a am I
#include
#include
void fanw( char *left,char *right ) //把每个单词单词翻转
{
char* pleft = left;
char* pright = right;
char temp;
while( pleft < pright )...
分类:
编程语言 时间:
2015-04-07 19:43:47
阅读次数:
167
题目链接:https://leetcode.com/problems/reverse-words-in-a-string/反转字符串的方法有很多种。要求空间复杂度是常数的话,可以先反转所有的单词,然后反转整个字符串。例如"the sky is blue",可以先反转为"eht yks si eulb...
分类:
其他好文 时间:
2015-04-06 21:29:12
阅读次数:
155
myitoa
#include
#include
void resver(char *s)//反转字符串
{
int len = strlen(s);
//printf("len=%d\n",len);
int i = 0;
char tmp = 0;
for (; i<len/2; i++)
{
tmp = s[i];...
分类:
其他好文 时间:
2015-04-02 22:38:49
阅读次数:
260