字符串反转及数组奇偶划分

//将字符串反转,型如:123  456  789 abc ,反转后的结果是 abc 789 456 123
/*
#include <iostream>
#include <string.h>
using namespace std;
void Exchange(char *&str)
{
	char *p=str+strlen(str)-1;
	char *q=str;
	while(q<p)
	{
		char temp=*q;
		*q=*p;
		*p=temp;
		 q++;
		 p--;
	}
}
void Grial(char *str)
{
	char *p = str;
	while(*p!='\0')
	{
		char *p_1=p;
		while(*p!=' ')p++;
		char *save=p+1;
		*p='\0';
		Exchange(p_1);
		*p=' ';
		p=save;
	}
	Exchange(str);
}
int main()
{
	char s[]="12345 1234 abc";
	Grial(s);
	cout<<s<<endl;
	return 0;
}
//原理是将整个字符串中单个字符串(以空格分割)反转,形如abc 123,第一步操作之后是 cba 321,
//第二步再将整个字符串整体反转,操作之后的结果是 123 abc ,就达到了反转字符串的效果,且不改变原来单个字符串的顺序.
*/

//百度笔试:给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数
//要求:空间复杂度o(1),时间复杂度o(m)。
/*#include <iostream>
using namespace std;
void Grial(int a[],int x)
{
	int i=-1;
	int j=0;
	int temp;
	while(j<x)
	{
		while(j!=(x-1) && a[j]%2==0)j++;
			i++;
			temp = a[i];
			a[i] = a[j];
			a[j] = temp;
			j++;//每次将偶数放在i的位置,所以i的位置从-1开始,直到j=x时,i的左边全市奇数,i的右边全市偶数.
	}
}
int main()
{
	int a[]={9,6,4,2,43,5,1,43,5,6};
	Grial(a,10);
	for(int i=0;i<10;i++)
	{
		cout<<a[i]<<" ";
	}
}*/

时间: 2024-10-10 13:47:11

字符串反转及数组奇偶划分的相关文章

关于字符串反转和数组反转的问题

关于反转这个问题,在晚上查了些资料,有很多非常不错的思想,要熟练的掌握这些思想,现在把这些总结如下: 字符串反转: 1 import java.util.Stack; 2 3 public class StringInverse { 4 public static void main(String[] args) { 5 System.out.println(reverse7("abcde")); 6 } 7 //方式一 8 public static String reverse1(

华为OJ平台试题 —— 数组:字符串反转

字符串反转 代码: /* * 接受一个字符串,然后输出该字符串反转后的字符串. */ #include <stdio.h> #include <string.h> /* * 字符串反转函数 */ char *revstr(char *str, int len) { char *start = str; char *end = str + len - 1; char ch; if (str != NULL) { while (start < end) { ch = *start

字符串反转方法汇总

split()方法将一个字符串对象的每个字符拆出来,并且将每个字符串当成数组的每个元素 reverse()方法用来改变数组,将数组中的元素倒个序排列,第一个数组元素成为最后一个,最后一个变成第一个 join()方法将数组中的所有元素边接成一个字符串 来看个实例: 1 function reverseString(str) { 2 // 第一步,使用split()方法,返回一个新数组 3 // var splitString = "hello".split("");

字符串反转的进一步应用----单词反转

字符串反转:如给定一字符串 good bye boy. 反转之后: .yob eyb doog 实现思路: 分别从第一个字符和最后一个字符,同时向中间遍历,交换遇到的每一个字符.JAVA实现代码如下:字符数组str存储待反转的字符串. private static void inverse(char[] str, int start, int end){ int i = start; int j = end; while(i < j){ char tmp = str[i]; str[i] = s

Java实现字符串反转

对于使用Java字符串反转有以下几种实现: 利用StringBuilder类中的reverse函数: 使用递归,将String的首字符放到除首字符外的子串后,然后再递归调用子串: 使用字符数组做reverse: public class Reverse { public static String reverse1(String str) { if (str == null || str.length() <= 1) return str; return new StringBuilder(st

(转)c++字符串反转

//通过不同的方法,实现对所输入字符串的反转,可以很好地复习巩固 C++ 基础知识 /*分析过程: 假设要使传递的字符串为常量const字符串,这样操作更加灵活,可直接传递字符串字面值进行反转,常见的解决方法就是,定义一个新的与传递过来字符串长度 相等的字符数组,然后进行字符串拷贝,把str字符按从左到右放置到字符数组中,然后采用循环来对字符数组中字符反转 */ #include <iostream> #include <string> /*第一种,采用以上思路解法,传递为cons

关于字符串反转的几种方法的比较

下面先上代码: class Program { static void Main(string[] args) { string str = "12345"; const int count = 10000; Stopwatch sw = Stopwatch.StartNew(); for (int i = 0; i < count; i++) { Reverse1(str); } Console.WriteLine("Reverse1耗时: {0}", sw

[C/C++] String Reverse 字符串 反转

#include <iostream> #include <string> #include <algorithm> #include <cstring> inline void STL_Reverse(std::string& str) // 反转string字符串 包装STL的reverse() 可以inline { reverse(str.begin(), str.end()); // STL 反转函数 reverse() 的实现 /* tem

PHP中文字符串反转实例代码

PHP中文字符串反转实例代码  PHP字符串反转函数string strrev( string $str ) ,该函数只有一个参数,就是要反转的字符串. 实例程序:  echostrrev("Hello world!"); // outputs "!dlrowolleH" UTF8中文字符串反转实例代码:  function strrev_utf8($str) { return join("", array_reverse( preg_split