`
lovnet
  • 浏览: 6721488 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

第3题 reverse字符串

 
阅读更多

颠倒一个字符串。优化时间,优化空间。


此题也就是字符串倒置,类似的问题经常在面试中出现,我在stackoverflow上查到一个很不错的方法



上面这个reverse函数里的while循环中 ^= 操作符是倒置的具体操作

A^=B

B^=A

A^=B

以上三步操作实际就是把A和B的值互换一下,为什么呢?

计算机中任何表示最终都会化为二进制表示

A是一个字符,我们假定它的二进制为 01001100

B是一个字符,我们假定它的二进制为 10100001


^是异或操作符, 也就是说

0^0 = 0

0^1 = 1

1^0 = 1

1^1 = 0

相同得0,不同得1


那么,A^=B 相当于 A = A^B,

第一步:A = A^B = 01001100 ^ 10100001 = 11101101

第二步:B = B^A = 10100001 ^ 11101101 = 01001100

第三步:A = A^B = 11101101 ^ 01001100 = 10100001


这时发现

A = 10100001

B = 01001100

即A和B的值互换了


分享到:
评论

相关推荐

    java字符串操作大全

     它有两种形式,第一种形式用一个字符在调用字符串中所有出现某个字符的地方进行替换,形式如下:  String replace(char original,char replacement)  例如:String s="Hello".replace('l','w');  第二种形式...

    Mysql通过存储过程分割字符串为数组

    REVERSE(str) 返回颠倒字符顺序的字符串str。 SUBSTRING_INDEX(str,delim,count) 返回从字符串str的第count个出现的分隔符delim之后的子串。如果count是正数,返回最后的分隔符到左边(从左边数) 的所有字符。如果...

    Python实现字符串的逆序 C++字符串逆序算法

    本文实例为大家分享了Python/C++实现字符串逆序的具体代码,供大家参考,具体内容如下 题目描述:将字符串逆序输出 Python实现一: 借助于列表的reverse()函数,需要注意的是,该函数没有返回值,只会让列表原地逆序...

    C语言 指针

    1、编写函数 reverse(*s),实现对字符串S的倒排,编写主函数对其进行调用。   2、编写函数strcmp(*s1,*... 3、有一字符串,包含n个字符,写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。  

    Java实现的简单字符串反转操作示例

    主要介绍了Java实现的简单字符串反转操作,结合实例形式分别描述了java遍历逆序输出以及使用StringBuffer类的reverse()方法两种字符串反转操作技巧,需要的朋友可以参考下

    javascript 实现字符串反转的三种方法

    第一种方法 代码如下:var str = “abcdef”; console.log( str.split(“”).reverse... }第三种方法: 代码如下:<html> <body> [removed] function reverse(str) { if(str.length == 0)return null; var i =

    软件测试必备数据库资识多年经验总结

    reverse(char),颠倒字符串 replace(str, strold, strnew) 替换字符串 space(n), 产生n个空行 stuff(), SELECT STUFF("abcdef", 2, 3, "ijklmn") ="aijklmnef", 2是开始位置,3是要从原来串中删除的字符长度,...

    Perl 语言入门 第六版

    第三章列表与数组 访问数组中的元素 特殊的数组索引 列表直接量 qw简写 列表的赋值 pop和push操作符 shift和unshift操作符 splice操作符 字符串中的数组内插 foreach控制结构 Perl最喜欢用的默认变量:$_...

    六道Python基础训练题和对应答案详细解析.docx

    # Python基础训练题和答案解析 以下是Python基础训练题及其答案解析: ...请编写一个Python程序,输入一个字符串,将它反转并输出。 ### 答案解析: ``` string = input("请输入一个字符串:") reverse_str

    .NET 平台下Web 程序设计

    第4章 Web程序设计中的字符串与正则表达式动手实验 276 4.1 实验1 Sort()方法和Reverse()方法 276 4.1.1 实验目标 276 4.1.2 实验步骤 276 4.2 实验2 String类型是引用类型 278 4.2.1 实验目标 278 4.2.2 实验步骤 ...

    Python3 菜鸟查询手册

    08.04 字符串内建函数 bytes.decode()方法.png 08.05 字符串内建函数 encode()方法.png 08.06 字符串内建函数 endswith()方法.png 08.07 字符串内建函数 expandtabs()方法.png 08.08 字符串内建函数 find()方法...

    javascript文档

    indexOf 方法 返回在 String 对象中第一次出现子字符串的字符位置。 不相等运算符 (!=) 比较两个表达式,看是否不相等。 Infinity 属性 返回 Number.POSITIVE_INFINITY 的初始值。 input 属性 返回进行查找的...

    JScript 语言参考

    indexOf 方法 返回在 String 对象中第一次出现子字符串的字符位置。 不相等运算符 (!=) 比较两个表达式,看是否不相等。 Infinity 属性 返回 Number.POSITIVE_INFINITY 的初始值。 input 属性 返回进行查找的...

    微软JavaScript手册

    indexOf 方法 返回在 String 对象中第一次出现子字符串的字符位置。 不相等运算符 (!=) 比较两个表达式,看是否不相等。 Infinity 属性 返回 Number.POSITIVE_INFINITY 的初始值。 input 属性 返回进行查找的...

    入门学习Linux常用必会60个命令实例详解doc/txt

    在第三种格式中,会创建所有指定的目录及它们的主目录。长选项必须用的参数在使用短选项时也是必须的。 3.主要参数 --backup[=CONTROL]:为每个已存在的目的地文件进行备份。 -b:类似 --backup,但不接受...

    PHP和MySQL WEB开发(第4版)

    第三篇 电子商务与安全性 第14章 运营一个电子商务网站 14.1 我们要实现什么目标 14.2 考虑电子商务网站的类型 14.2.1 使用在线说明书公布信息 14.2.2 接收产品或服务的订单 14.2.3 提供服务和数字产品 14.2.4 为...

    PHP和MySQL Web开发第4版pdf以及源码

    第三篇 电子商务与安全性 第14章 运营一个电子商务网站 14.1 我们要实现什么目标 14.2 考虑电子商务网站的类型 14.2.1 使用在线说明书公布信息 14.2.2 接收产品或服务的订单 14.2.3 提供服务和数字产品 14.2.4...

    PHP和MySQL Web开发第4版

    第三篇 电子商务与安全性 第14章 运营一个电子商务网站 14.1 我们要实现什么目标 14.2 考虑电子商务网站的类型 14.2.1 使用在线说明书公布信息 14.2.2 接收产品或服务的订单 14.2.3 提供服务和数字产品 14.2.4...

    freemarker总结

    2,使用+运算符时,如果一边是数字,一边是字符串,就会自动将数字转换为字符串再连接,如:${3 + "5"},结果是:35 使用内建的int函数可对数值取整,如: ${ (x/2)?int } ${ 1.1?int } ${ 1.999?int } ${ -1.1?int } ...

    cLanguageFuntions:一些C函数和程序的源代码-C language program source code

    该程序采用两个字符串,并按照在第一个字符串中出现的顺序显示在两个字符串中出现的字符。 没有双打。 $>./inter love folv lov 3. reverse_bits.c 占用一个字节的函数,一点一点地反转它。 237 => 1110 1101 ...

Global site tag (gtag.js) - Google Analytics