编程题及解题思路(2,原串翻转问题)

题目描述

请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量)。

给定一个string iniString,请返回一个string,为翻转后的字符串。保证字符串的长度小于等于5000。

测试样例:

"This is nowcoder"
返回:"redocwon si sihT"
public static String reverseString(String iniString) {
        // write code here
         String Str = "";
        for (int i=iniString.length()-1;i>=0; i--) {

            Str=Str+iniString.charAt(i);
        }
        return Str;
    }

解题思路

这道题第一时间想到的就是遍历呗

将后边的值放到一个新数组中去然后toString就好了嘛。但结果却是打印出一串数组有逗号有括号的

于是就直接用字符串+号拼接吧,代码很简单没啥需要解释的。

效率:运行时间:219ms  占用空间30776k

这里说个题外话,也算科普一下,上个代码吧!

public static void reverseString2() {
        String Str=null;
        String Str1=Str+"大家好!";
        String Str2="我是一只猪!";
        String Str3=Str+Str2;
        System.err.print(Str1+"\\\\"+Str3);
    }

这个打印出来的结果是什么???

不妨猜测下

意外不?

这曾经是华为的一道面试题

String 类型为null的时候,进行拼接运算,会把null转为String类型去拼接,它会做一个转型再执行拼接

先写到这,我再看看这道题还有什么其他解题思路。

原文地址:https://www.cnblogs.com/youknow-zx/p/11419183.html

时间: 08-26

编程题及解题思路(2,原串翻转问题)的相关文章

1.2原串翻转

题目描述 请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量). 给定一个string iniString,请返回一个string,为翻转后的字符串.保证字符串的长度小于等于5000. 测试样例 "This is nowcoder" 返回:"redocwon si sihT" 解法 //注意不分配额外空间 //①C++ //1.2原串翻转 1 class Reverse { 2 public: 3 string rev

网易2017秋招编程题——回文序列 解题报告

Problem:https://www.nowcoder.com/question/next?pid=2811407&qid=46573&tid=6015849 如果一个数字序列逆置之后跟原序列是一样的就称这样的数字序列为回文序列.例如: {1, 2, 1}, {15, 78, 78, 15} , {112} 是回文序列, {1, 2, 2}, {15, 78, 87, 51} ,{112, 2, 11} 不是回文序列. 现在给出一个数字序列,允许使用一种转换操作: 选择任意两个相邻的数,

1.2字符串 原串翻转

1 class Reverse { 2 public: 3 string reverseString(string iniString) { 4 // write code here 5 string::iterator b=iniString.begin(); 6 string::iterator e=iniString.end(); 7 e--; 8 while(b<e) 9 { 10 swap(*b++,*e--); 11 } 12 return iniString; 13 } 14 };

原串翻转

题目描述 请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量). 给定一个string iniString,请返回一个string,为翻转后的字符串.保证字符串的长度小于等于5000. 测试样例: "This is nowcoder" 返回:"redocwon si sihT" 分析:其实就是对称位置上的元素交换!! AC代码如下: class Reverse { public: string reverseStrin

【2】原串翻转

题目: 请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量). 给定一个string iniString,请返回一个string,为翻转后的字符串.保证字符串的长度小于等于5000. 测试样例: "This is nowcoder" 返回:"redocwon si sihT" 代码实现: 方法一:双指针思想,前后指针所指向的字符交换,直至两指针相遇,交换完毕. import java.util.*; public cl

2017年第六届数学中国数学建模国际赛(小美赛)C题解题思路

这篇文章主要是介绍下C题的解题思路,首先我们对这道C题进行一个整体的概括,结构如下: C题:经济类 第一问:发现危险人群. 发现:欺诈的方式开始.雇佣或浪漫的承诺. 数据→确定特定的经济萧条地区→确定最危险的人群→针对这些人群的预防活动 被贩卖的因素(卷入人口贩运的风险因素): 贫困.失业.移民.逃避政治冲突.战争. 第二问:受害者身份和位置 发现:人口贩运网:动态的 贩毒者:频繁地改变分布.运输路线 (以避免被发现) ↓(信息不完整) 执法人员和分析人员→试图识别.摧毁 人口贩卖网络→(信息不

超5星难度【微软Core allocation】Coding赛题 - 解题思路&amp;优秀代码分享,邀你来“找茬儿”

6月23日英雄会平台发布了一道难度为超5星的微软比赛题目,截止活动结束共有300多名编程爱好者参与线上答题,而最终通过者仅有7人,通过率仅为2%.为什么成绩如此出人意料?是因为原题的英文描述难以理解?还是题目本身的难度太高让很多人望而生畏知难而退? 为此我们诚邀各路英雄豪杰前来切磋探讨,共同发现: 1. 解题思路:本次大赛一等奖获得者-大连理工大学学生__newSolar,提供两种解题思路: 2. 代码样本:雅虎刷题狂人曹鹏专家的代码将作为样本展示,供学习借鉴: 3."一起来找茬儿":

编程题:输入一串字符,程序会自动将大写字母转换为小写

编程题:输入一串字符,程序会自动将大写字母转换为小写 #include <stdio.h> #include <conio.h> main() { int i=0; char a[50],ch; printf("输入一串字符,程序会自动将大写字母转换为小写\n"); printf("按任意键继续,按Esc键退出\n"); while(ch=getch()!=27) { fflush(stdin); printf("请输入字符串:\n

[编程题-蘑菇街]回文串

[编程题] 回文串 给定一个字符串,问是否能通过添加一个字母将其变为回文串. 输入描述: 一行一个由小写字母构成的字符串,字符串长度小于等于10. 输出描述: 输出答案(YES\NO). 输入例子: coco 输出例子: YES #include<iostream> #include<string> using namespace std; bool f(string& s, int i) { int l = 0, r = s.size() - 1; if (l == i)