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> result;
        s += pattern;
        string::size_type size = s.size();
        for(int i = 0;i < size;i++){
            pos = s.find(pattern, i);
            if(pos < size){
                string word = s.substr(i, pos - i);
                if(word.find(pattern) == -1 && word != "")
                    result.push_back(word);
                i = pos + pattern.size() - 1;
            }
        }

        s = "";
        if(result.size() <= 0)
            return;
        for(int i = result.size() - 1; i >= 1 ; i--){
          s += result[i];
          s += " ";
        }
        s += result[0];
    }
};

leetcoder系列001:c++字符串反转,布布扣,bubuko.com

时间: 2024-10-12 12:13:59

leetcoder系列001:c++字符串反转的相关文章

Java面试题从零开始:写一个函数把字符串反转

前言:为了能够找一个代表我从零开始的诗词,我挖空心思去找,然而怎么也找不到一个贴合我心意的,被迫上了度娘也不曾找到.真想把小学一年级的语文课本拿出来好好的通读一遍,肯定能找到答案. 好了,既然找不到也不必耿耿于怀了.今天读了<高效能程序员的修炼>第四章,发现自己好烂,如果按照作者的看法,我是无论如何都入不了他的法眼,于是乎,我告诉自己,从零开始,把作者提出的面试题按照Java来写一遍,无论是参考别人还是自己略能想得到的办法,亲自动手把它们敲出来,并且记录下来吧! 写一个函数把字符串反转,作为本

字符串反转方法汇总

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

使用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

字符串反转,

-(IBAction)abc:(id)sender { NSString *a = @"abcdef"; NSMutableString *newA = [[NSMutableString alloc]init]; int length = a.length; for (int i = 0; i<length; i++) { char m = [a characterAtIndex:length - i - 1]; NSString *sM = [NSString stringW

(转)c++字符串反转

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

JS 对 字符串反转

突然看到比较好的文章,列举了挺多比较好的方法,再次我也举一反三,写出一段代码. var str = "123456"; function reverseStr(s){ return s&&reverseStr(s.slice(1)) + s[0]; } alert(reverseStr(str)); 原文章:JavaScript算法练习:字符串反转