Leetcode解题笔记(4)
来源:互联网 发布:龙卷风收音机软件 编辑:程序博客网 时间:2024/06/03 19:51
之前都是看到哪道就写哪道,没啥逻辑。这次主要是关于String的。
345. Reverse Vowels of a String
Write a function that takes a string as input and reverse only the vowels of a string.
Example 1:
Given s = "hello", return "holle".
Example 2:
Given s = "leetcode", return "leotcede".
Note:
The vowels does not include the letter "y".
思路:定义一个包括所有元音字母(大小写)的数组,定义low high两个指针,若low high对应的均为元音字母,交换;否则,指针移动。
/** * @param {string} s * @return {string} */var reverseVowels = function(s) { var set = ["a","e","i","o","u","A","E","I","O","U"]; s = s.split(""); var low = 0, high = s.length - 1,tem; while(low < high){ if(set.indexOf(s[low]) == -1){ low++; } else if(set.indexOf(s[high]) == -1){ high--; } else if((set.indexOf(s[low]) != -1) && (set.indexOf(s[high]) != -1)){ tem = s[low]; s[low] = s[high]; s[high] = tem; low++; high--; } } return s.join("").toString();};
125. Valid Palindrome
回文字符串。错了两次wrong answer:
一次是因为没有忽略大小写
一次是“a.”也是回文字符串(啊其实我到现在也不理解??)可能是因为只关注数字字母?
然后我就想到正则里的 /W
之后的判断有两种方法了:
一种是设置两个指针low high
/** * @param {string} s * @return {boolean} */var isPalindrome = function(s) { s = s.replace(/\W/g, '').toLowerCase().split(""); var low = 0, high = s.length - 1; while(low <= high){ if(s[low] != s[high]){ return false; } low++; high--; } return true;};
另一种是用到之前反转的的那题的 判断 string 和 reverse string
/** * @param {string} s * @return {boolean} */var isPalindrome = function(s) { s = s.replace(/\W/g, '').toLowerCase().split("").join("").toString(); var sReverse = s.split("").reverse().join("").toString(); return s === sReverse;};
434. Number of Segments in a String
题目大意就是数一个字符串里有多少个单词(我一开始理解成数有多少个空格。。)我的天
思路还是简单粗暴,遍历字符串,当它是空格且它前一个不是空格的时候,计数器加一
/** * @param {string} s * @return {number} */var countSegments = function(s) { var count = 0; if(!s){ return 0; }else{ for(var i=0;i<s.length;i++){ if(s.charAt(i)!=' ' && (i===0 || s.charAt(i-1)==' ')){ ++count; } } } return count;};
还有一点想法
记得数组里有filter()方法 或者再配合正则? 有机会试试!
0 0
- Leetcode解题笔记(4)
- Leetcode解题笔记(string)
- Leetcode解题笔记(Array)
- LeetCode解题笔记(1)
- LeetCode解题笔记(2)
- LeetCode解题笔记(3)
- Leetcode解题笔记(5)
- Leetcode解题笔记(Stack)
- Leetcode解题笔记(Stack)
- LeetCode解题记录(4)
- leetcode解题笔记:backtracking类型解题思路
- 【LeetCode】Reverse Integer解题笔记
- 【LeetCode】Valid Sudoku解题笔记
- 【LeetCode】Spiral Matrix解题笔记
- leetcode解题笔记-Palindrome Partitioning
- leetcode解题笔记-Distinct Subsequences
- leetcode解题笔记-Text Justification
- Leetcode解题笔记(Linked List)
- Bootstrap构建一个个人网站
- HDU 1573 中国剩余定理 + 不互质
- CSS居中方法
- 算典03_习题_11_UVA-1588
- 总结一下前端面试题之Html和CSS
- Leetcode解题笔记(4)
- LightOJ1066
- mysql 死锁检测变量innodb_deadlock_detect
- 数据结构---栈(指针实现)
- Linux为用户添加sudo权限
- LightOJ 1337
- extern C的作用详解
- UVA232 Crossword Answer
- Java多线程系列-Executors