LeetCode String专题
来源:互联网 发布:js click事件兼容性 编辑:程序博客网 时间:2024/05/01 23:51
LeetCode String专题部分,更多说明请见LeetCode Array专题
344. Reverse String
Write a function that takes a string as input and returns the string reversed.
Example:
Given s = “hello”, return “olleh”.译:实现一个函数可将输入的字符串翻转。
实现
public class Solution { public String reverseString(String s) { if (s == null || s.length() == 0) { return ""; } char[] chars = s.toCharArray(); StringBuilder sb = new StringBuilder(); for (int index = s.length() - 1; index >= 0; index--) { sb.append(chars[index]); } return sb.toString(); }}
问题分析
效率有待优化。
387. First Unique Character in a String
Given a string, find the first non-repeating character in it and return it’s index. If it doesn’t exist, return -1.
Examples:
s = "leetcode"return 0.s = "loveleetcode",return 2.
Note: You may assume the string contain only lowercase letters.
译:给你一个字符串,找出其中第一个没有重复的字符并返回其索引。如果不存在这样的字符,返回 -1;
实现
public class Solution { public int firstUniqChar(String str) { if (str == null || str.length() <= 0) { return -1; } char[] charElements = str.toCharArray(); LinkedHashMap<Character, Integer> boxMap = new LinkedHashMap<>(); for (char element : charElements) { if (!boxMap.containsKey(element)) { boxMap.put(element, 1); } else boxMap.put(element, boxMap.get(element).intValue() + 1); } for (char key : boxMap.keySet()) { if (boxMap.get(key) <= 1 && boxMap.get(key) >= 0) { for (int index = 0; index < charElements.length; index++) { if (charElements[index] == key) { return index; } } } } return -1; }}
问题分析
在此我使用的是LinkedHashMap来进行元素的存储,因为有序,所以避免了顺序混乱的问题。在将字符串转换为char的数组后遍历一次将每个元素以键的形式对应的存在Map的Key中,如果已经存储过的元素则将其的值Value加一,默认为1。全部存储过后再进行Map的查找第一个值为1的Key则命中目标。接着我的实现还有待改善,因为套用了嵌套的for循环二次遍历char数组中该Key所在的索引,导致效率不高。
0 0
- LeetCode String专题
- LeetCode专题----String
- string专题(c++)【1】
- 【LeetCode】list专题
- leetcode LinkList专题
- leetcode 专题—sort
- leetcode ----Trie/stack专题
- LeetCode专题------位操作
- LeetCode专题----动态规划
- Leetcode:List专题
- LeetCode专题----Array
- LeetCode专题----Tree
- LeetCode专题----递归
- LeetCode Array专题
- LeetCode Stack Design专题
- LeetCode专题: 二分查找
- LeetCode专题----DFS
- LeetCode专题----LinkedList
- 循环链表
- 徐汉彬:Web系统大规模并发——电商秒杀与抢购
- Html5学习之旅(3) 文本元素
- hive 常用服务
- css3 2d转换3d转换以及动画的知识点汇总
- LeetCode String专题
- Android---No Java virtual machine was found after searching the following locations
- 徐汉彬:亿级Web系统搭建——单机到分布式集群
- ibatis中的parameterMap和parameterClass的应用详解
- PPTP协议简述
- iOS - 自主实现类似微信语音视频信息聊天 (idoubs详细使用方法)1.0
- 徐汉彬:大规模网站架构的缓存机制和几何分形学
- Android之封装好的异步网络请求框架
- GRE、PPTP、L2TP隧道协议