笔试的一道题(字符串反转poj3750)

#include <iostream>
#include <string>

using namespace std;
string str;
void reverse(int begin,int end)
{
    while(begin<end)
    {
        str[begin] = str[begin]^str[end];
        str[end] = str[begin]^str[end];
        str[begin] = str[begin]^str[end];
        begin++;
        end--;
    }
}
int main()
{
    int i,j;
    while(getline(cin,str))
    {
        int len = str.length();
        int begin,end;
        i = 0;
        while(i<len)
        {
            begin = i;
            while(i<len&&str[i]!=' ')
                i++;
            end = i-1;
            reverse(begin,end);
            i++;
        }
        reverse(0,len-1);
        cout << str << endl;
    }
    cout << "Hello world!" << endl;
    return 0;
}

例如:I am zhang san.   输出:san. zhang am I;

时间: 2024-10-03 17:55:46

笔试的一道题(字符串反转poj3750)的相关文章

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

//将字符串反转,型如: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--

趣味算法:字符串反转的N种方法(转)

老赵在反对北大青鸟的随笔中提到了数组反转.这的确是一道非常基础的算法题,然而也是一道很不平常的算法题(也许所有的算法深究下去都会很不平常).因为我写着写着,就写出来8种方法……现在我们以字符串的反转为例,来介绍这几种方法并对它们的性能进行比较. 使用Array.Reverse方法 对于字符串反转,我们可以使用.NET类库自带的Array.Reverse方法 public static string ReverseByArray(this string original) { char[] c =

字符串反转方法汇总

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

leetcoder系列001:c++字符串反转

问题: 给定一个输入字符串,字符串字反向词.例如 s = "the sky is blue",返回 "blue is sky the". 我的答案: class Solution { public: void reverseWords(string &s) { if(s.size() <= 0) return; string pattern = " "; string::size_type pos; vector<string

《Java程序员面试笔试宝典》之字符串创建与存储的机制是什么

在Java语言中,字符串起着非常重要的作用,字符串的声明与初始化主要有如下两种情况:(1) 对于String s1=new String("abc")语句与String s2=new String("abc")语句,存在两个引用对象s1.s2,两个内容相同的字符串对象"abc",它们在内存中的地址是不同的.只要用到new总会生成新的对象. (2) 对于String s1 = "abc"语句与String s2 = "

使用SQL字符串反转函数REVERSE巧妙实现lastindexof功能

要实现一个简单的业务: 使用SQL脚本获取字符串'large/020700/61970b0101.jpg' 中的'61970b0101.jpg'部分. 先想到的是C#中的lastindexof,但是SQL中没有这个函数,只有charindex函数,只好使用现有资源想办法曲线解决了. 解决思路: 1.使用REVERSE函数将字符串反转 2.使用charindex找到第一个出现'/'的位置 3.使用left函数找到'/'之前的字符串 4.再次使用REVERSE函数将处理过的字符串反转 具体示例: D

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

将字符串反转,但单词不倒置2。Right here waiting for you! -&gt; you! for waiting here Right

//将字符串反转,但单词不倒置.Right here waiting for you! -> you! for waiting here Right #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> int main() { char str[255]; char result[255]; int length; int i,j,k = 0; int wordLen = 0; gets