百度2017秋招-相似串
来源:互联网 发布:诺可可网络 编辑:程序博客网 时间:2024/06/07 16:09
题目大意:给你一个字符串helloworld,然后让你给出一个相似的串,相似串整体上字母顺序从左到右出现,且与原字符串对应的位置的字符都要一致。则helloworld对应的相似串为abccdedfcg。
解题思路:先建立一个hashMap,让原字符串找到对应的字符。例如:h-a,e-b,l-c以此类推。然后再遍历原字符串,输出相应的相似串即可。
package 百度;import java.util.HashMap;import java.util.Scanner;/** * @题目描述:S和T是两个字符串(它们只由小写字母构成),定义S与T相似当且仅当: 1、S和T长度相同。 * 2、对于任意两个位置i和j,如果Si和Sj相同,那么Ti和Tj相同;如果Si和Sj不同,那么Ti和Tj不同。 * (Si的含义为字符串S在第i个位置的字符,Ti的含义为字符串T在第i个位置的字符) * 与字符串”abca”相似的串有”abca”,”cdac”,”zetz”等,现在给出一个字符串S,输出与之相似的字典序最小的串。 * * @样例输入:helloworld * @样例输出:abccdedfcg * * @author 崔洪振367 * @version 创建时间:2017年4月22日 下午10:33:30 */public class Q2017秋招_相似串 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);HashMap<Character, Character> hashMap = new HashMap<>();while (scanner.hasNext()) {String string = scanner.next();// 原字符串int len = string.length();int k = 0;for (int i = 0; i < len; i++) {//先找出原字符和字典序中字符的对应关系char c = string.charAt(i);if (hashMap.size() == 0) {char cc = (char) ((int) 'a' + k);//原字符所对应的字典序中的字符k++;hashMap.put(c, cc);//将对应关系添加到hashMap中} else {if (!hashMap.containsKey(c)) {char cc = (char) ((int) 'a' + k);k++;hashMap.put(c, cc);}}}char[] cs = string.toCharArray();//原字符数组StringBuffer sb = new StringBuffer();for (char c : cs) {char ccc = hashMap.get(c);sb.append(ccc);}System.out.println(sb.toString());}scanner.close();}}
0 0
- 百度2017秋招-相似串
- 百度2017秋招-度度熊找子串
- 百度2017秋招-颜色反转
- 百度2017秋招-时间戳
- 百度2017秋招-士兵列队
- 百度2017秋招-分数序列和
- 比赛组队-Java-2017百度秋招
- 百度2017秋招笔试编程题
- 百度2017秋招笔试编程题
- 2017秋招 百度前端一面面经
- 2018 秋招 百度一面
- 百度2017春招试题
- 爬行的蚂蚁-Java-2017百度秋招
- 百度2017秋招笔试真题(一)
- 秋招百度Android面经
- 百度前端秋招笔试编程题
- 2017 百度校招 编程题
- 2017百度深圳研发中心校招一面
- jQuery 数据
- iOS block分析:使用方式与储存机制,变量捕获机制
- 为Linux技术学习推荐看的书籍—《Linux就该这么学》
- Google 常用网站及特色功能
- C#-输入格式不正确
- 百度2017秋招-相似串
- java中的hashset
- memcpy和memmove区别
- 【Linux】【Kernel】内核构造漫画版
- 窗体(随机数,列表框,标签,按钮,修改窗体名字)
- 组合数学常用内容——Polya定理+Burnside引理
- Idea相关设置及常用快捷键
- 我必须得告诉大家的MySQL优化原理
- 前后台分页