-
题目:在一串字符中查看是否有重复字母,有则返回false,无则返回true
例如:输入 "abcdefg"
输出:true
输入:"abcccc"
输出:false
-
解题思路
- 因为前几条做过一道使用map与字符数组去做去重的题目,因此,我在这里想到快速解体的方法就是是用这两个工具;
- 先将字符串转换为字符数组,关键代码:char[ ] charArray = str.toCharArray();
- 要检测是否有重复的字母,需要有一个容器存放这个字符,并且进行对比,可以使用map的containsKey(Object key) 方法对重复的字符做校验;
- 使用这个方法后,如果 containsKey(Object key) 方法为true,那么就说明有重复的字符,整体结果返回 false,如果没有重复的字符,则返回true
-
代码
class Solution {
public int findPeakElement(int[] nums) {
/**
思路:
1、先去掉头尾两个数
2、前一个数与后一个数相比较,
2.1、如果有一个较大的,则返回他的下标
2.2、如果是较小的则继续比较
2.3、如果相等也继续比较
*/
if(nums.length == 0 || nums.length == 1) {
return 0;
}
if(nums.length == 2) {
if(nums[0] > nums[1]) {
return 0;
} else {
return 1;
}
}
int index = 0;
int result = 0;
for(index=1; index<nums.length-1; index++) {
if(nums[index] > nums[index+1] && nums[index] > nums[index-1]) {
result = Math.max(result,index);
} else
continue;
}
return result;
}
}