容易想复杂的"回环变位"
2015-05-17 20:00
246 查看
今天看算法(第四版)看到一个“回环变位”
题目描述很简单:
如果字符串s重的字符循环移动任意位置之后能够得到另一个字符串t,那么s就被成为s的回环变位(circular rotation) 举例省略…
问题:请编写一个程序检查2个给定的字符串s和t是否互为回环变位。
提示:判断条件只需要一行代码
看到题目当时满脑子想的都是双重循环啊,游标移动啊各种i,j,k……
结果来一句这样的提示,当时我就受不了了,决定去看一下答案….
**
答案是这样的
乍一看,好像真的可以…顿时鄙视了自己的各种游标循环i,j,k…
(虽然可能底层也是各种循环游标i,j,k,但是别人都实现了的基类直接用明显更省事…)
但是也发现自己对String类的concat函数和indexOf的各种重载不懂
一下是jdk文档的描述
题目描述很简单:
如果字符串s重的字符循环移动任意位置之后能够得到另一个字符串t,那么s就被成为s的回环变位(circular rotation) 举例省略…
问题:请编写一个程序检查2个给定的字符串s和t是否互为回环变位。
提示:判断条件只需要一行代码
看到题目当时满脑子想的都是双重循环啊,游标移动啊各种i,j,k……
结果来一句这样的提示,当时我就受不了了,决定去看一下答案….
**
好吧是我太蠢….
**答案是这样的
(s.length() == t.length()) && (s.concat(s).indexOf(t) >= 0)
乍一看,好像真的可以…顿时鄙视了自己的各种游标循环i,j,k…
(虽然可能底层也是各种循环游标i,j,k,但是别人都实现了的基类直接用明显更省事…)
但是也发现自己对String类的concat函数和indexOf的各种重载不懂
一下是jdk文档的描述
public String concat(String str)将指定字符串连接到此字符串的结尾。 如果参数字符串的长度为 0,则返回此 String 对象。否则,创建一个新的 String 对象,用来表示由此 String 对象表示的字符序列和参数字符串表示的字符序列连接而成的字符序列。 示例: "cares".concat("s") returns "caress" "to".concat("get").concat("her") returns "together" 参数: str - 连接到此 String 结尾的 String。 返回: 一个字符串,它表示在此对象字符后连接字符串参数字符而成的字符。
public int indexOf(String str)返回指定子字符串在此字符串中第一次出现处的索引。返回的整数是 this.startsWith(str, k) 为 true 的最小 k 值。 参数: str - 任意字符串。 返回: 如果字符串参数作为一个子字符串在此对象中出现,则返回第一个这种子字符串的第一个字符的索引;如果它不作为一个子字符串出现,则返回 -1。
相关文章推荐
- ria +prism 难解问题之 "返回类型必须是实体或复杂类型、复杂类型的集合或预定义的可序列化类型之一"
- 修改ecshop复杂重写里的"+"为"-"
- "转" CXF+JAXB处理复杂数据
- 不要在DEBUG模式下使用STL实现"复杂的"算法
- "右左法则"解读C的复杂声明
- 新发现:排序算法时间复杂度只有O(3n),命名为"wgw"排序法
- IQKeyBoardManager按钮"Done"能否改为"完成",能的话怎么改?
- Spring事务管理,"'程序报错'但'事务不回滚'?"问题分析(SSM实例)
- cascade="all-delete-orphan"时容易出现的一个异常
- Eclipse 安装插件一直卡顿在"Calculating requirements and dependencies"不动
- 微软是如何保持"大脑"清醒的
- "To use this device with Xcode, unlock the device and choose "Trust".
- "谢谢您!请检查您的电子邮件",请问后边的8个字!
- "Unfortunately, Launcher has stopped" on Android
- "HK"日常之用C# Process写一只小病毒
- sqlserver2008查询语句报错 无法解决 equal to 运算中 "Chinese_PRC_BIN" 和 "Chinese_PRC_CI_AS" 之间的排序规则冲突
- 给定一个字符串里面只有"R" "G" "B" 三个字符,请排序,最终结果的顺序是R在前 G中 B在后。
- CFileFind的成员函数GetFileName()为什么返回的是"."?
- 编写程序将"hello-NOworld"变成"hello-world"
- 在运行MFC程序的Release版本时,断点断在"INT_PTR nResponse = dlg.DoModal();"这句话上的处理