字符串反转
2016-07-28 23:12
453 查看
以前都是使用牛客网的OJ来练习,今天牛客网维护,才想到使用LeetCode,没想到居然还改版了,界面都不一样了。但是最让我眼前一亮的是这样一道简单题:字符串反转
334.Write a function that takes a string as input and returns the string reversed.
Example:
Given s = “hello”, return “olleh”.
Java很容易嘛,不就是字符串反转,那么最多是O(n),将字符串一次取值,并反向拼接。结果:报LTE错误,超时=_=
原来是Java中字符串的拼接使用StringBuffer。代码如下:
这里总结java中stringBuffer和String、StringBuilder的区别:
String是不可变的,而其他两种是可变的;
String和 StringBuffer是线程安全的,其中StringBuffer对方法加了同步锁或者对调用的方法加了同步锁,所以是线程安全的,而StringBuilder并没有对方法进行加同步锁,所以是非线程安全的
StringBuilder与StringBuffer有公共父类AbstractStringBuilder(抽象类),都会调用AbstractStringBuilder中的公共方法;
如果程序不是多线程的,那么使用StringBuilder效率高于StringBuffer;
此时,字符串连接操作中StringBuffer的效率要明显比String高。String对象是不可变对象,每次操作Sting 都会重新建立新的对象来保存新的值。StringBuffer对象实例化后,只对这一个对象操作。
334.Write a function that takes a string as input and returns the string reversed.
Example:
Given s = “hello”, return “olleh”.
Java很容易嘛,不就是字符串反转,那么最多是O(n),将字符串一次取值,并反向拼接。结果:报LTE错误,超时=_=
原来是Java中字符串的拼接使用StringBuffer。代码如下:
public String reverseString(String s) { int len=s.length(); if(len==0) return ""; StringBuffer str=new StringBuffer(); str.append(s); str.reverse(); return str.toString(); }
这里总结java中stringBuffer和String、StringBuilder的区别:
String是不可变的,而其他两种是可变的;
String和 StringBuffer是线程安全的,其中StringBuffer对方法加了同步锁或者对调用的方法加了同步锁,所以是线程安全的,而StringBuilder并没有对方法进行加同步锁,所以是非线程安全的
StringBuilder与StringBuffer有公共父类AbstractStringBuilder(抽象类),都会调用AbstractStringBuilder中的公共方法;
如果程序不是多线程的,那么使用StringBuilder效率高于StringBuffer;
此时,字符串连接操作中StringBuffer的效率要明显比String高。String对象是不可变对象,每次操作Sting 都会重新建立新的对象来保存新的值。StringBuffer对象实例化后,只对这一个对象操作。
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- android string.xml文件中的整型和string型代替
- Android java 与 javascript互访(相互调用)的方法例子
- android上改变listView的选中颜色
- String.intern
- Prototype源码浅析 String部分(二)
- Ruby中的String对象学习笔记
- Redis02 使用Redis数据库(String类型)全面解析
- PostgreSQL ERROR: invalid escape string 解决办法
- 浅谈C++中的string 类型占几个字节
- 标准C++类string的Copy-On-Write技术
- C++实现string存取二进制数据的方法
- 关于C++ string和c类型字符数组的对比
- C#中string和StingBuilder内存中的区别实例分析
- 详解C++中实现继承string类的MyString类的步骤
- PHP STRING 陷阱原理说明
- c#中 String和string的区别介绍
- C#实现的图片、string相互转换类分享
- asp.net String.IsNullOrEmpty 方法
- JavaScript中字符串(string)转json的2种方法