String Shifting- 今日头条校招2016-09-28在线编程题
来源:互联网 发布:淘宝上架宝贝教程 手机 编辑:程序博客网 时间:2024/06/01 07:15
题目1: String Shifting
题目描述:
我们规定对一个字符串的shift操作如下:
shift("ABCD",0)="ABCD"shift("ABCD",1)="BCDA"shift("ABCD",2)="CDAB"
换言之, 我们把最左侧的N个字符剪切下来, 按序附加到右侧.
给定一个长度为n的字符串, 规定最多可以进行n次循环shift操作。
如果shift(string, x) = string(0 <= x < n)
. 我们称其为一次匹配(match), 求shift过程中匹配的次数…
输入描述
输入仅包括一个输入的字符串, 字符串中仅有大小写字母
输出描述
输出仅包括一行, 即匹配的次数
样例输入:
byebyebye
样例输出:
3
hint:
30%的样例中输入字符串的长度<100,
100%的样例中输入字符串的长度<10^6
public class Main { public char[] reverse(char[] array, int b, int e) { char temp; for (; b < e; b++, e--) { temp = array[b]; array[b] = array[e]; array[e] = temp; } return array; }//reverse public String shift(String s, int k) { if (k == 0) { return s; } int n = s.length(); char[] array = s.toCharArray(); array = reverse(array, 0, n - k - 1); array = reverse(array, n - k, n - 1); array = reverse(array, 0, n - 1); return String.valueOf(array); }//shift public int match(String s) { int count = 0, n = s.length(); String s2 ; for (int i = 0; i <n; i++) { s2 = shift(s,i); System.out.println(i+","+s2); if (s.equals(s2)) { count++; } }//for return count; }//match public static void main(String[] args) { Main main = new Main(); String s = "byebyebye"; System.out.println(main.match(s)); }//main}//0,byebyebye//1,ebyebyeby//2,yebyebyeb//3,byebyebye//4,ebyebyeby//5,yebyebyeb//6,byebyebye//7,ebyebyeby//8,yebyebyeb//3
阅读全文
0 0
- String Shifting- 今日头条校招2016-09-28在线编程题
- 今日头条校招2016-09-28在线编程题(2题)
- String Shifting
- Shifting chars in string
- 今日头条——校招在线编程题《头条校招》
- 2017今日头条网招在线编程题(部分)
- Shifting
- 今日头条——校招在线编程题《字典序》
- Java在线编程之String
- 今日头条编程题
- 京东2016在线编程题
- 今日头条2017年实习生在线笔试题1
- 今日头条编程题第二题
- 今日头条编程题 专辑问题
- 2017今日头条测试编程题
- 【算法】今日头条2017编程题
- 4.18今日头条编程题
- 今日头条笔试编程题
- POJ-3268-Disease Management-(最短路径spfa)
- Java批量插入Oracle语句执行过程
- iOS 二维码生成
- PULL解析XML
- 银联支付
- String Shifting- 今日头条校招2016-09-28在线编程题
- Android手势处理框架-android gesture detectors Framework
- ELK+Kafka 企业日志收集平台(二)
- glassfish安装部署
- ARM NEON 编程系列6——ARM Neon 指令 解释
- C#二维数组拷贝到另一个二维数组
- Java中遍历map的四种方式
- MFC:去掉工具栏边框(与菜单栏之间的分割线)
- I/O流