字符

一、题目

1、题目: 判断字符是否唯一

实现一个算法,确定一个字符串 s 的所有字符是否全都不同。

示例 1:

1
2
输入: s = "leetcode"
输出: false

示例 2:

1
2
输入: s = "abc"
输出: true

说明
  如果你不使用额外的数据结构,会很加分。

法一:使用字符数组

1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution{
public boolean isUnique(String astr) {
char[] astrArray = astr.toCharArray();
Arrays.sort(astrArray);
for (int i = 0; i < astrArray.length - 1; i++){
if (astrArray[i] == astrArray[i+1]){
return false;
}
}
return true;

}
}

法二:不使用额外空间

1
2
3
4
5
6
7
8
9
10
class Solution{
public boolean isUnique(String astr){
for (int i = 0; i < astr.length() - 1; i++){
if (astr.insdexOf(astr.charAt(i),i+1) != -1 ){
return false;
}
}
return true;
}
}

2、题目:字符串轮转

字符串轮转。给定两个字符串s1s2,请编写代码检查s2是否为s1旋转而成(比如,waterbottleerbottlewat旋转后的字符串)。

示例1:

输入:s1 = “waterbottle”, s2 = “erbottlewat”
输出:True
示例2:

输入:s1 = “aa”, “aba”
输出:False

1
2
3
4
5
6
7
8
9
10
class Solution {
public boolean isFlipedString(String s1, String s2) {
if (s1.length() != s2.length()){
return false;
}
s1 += s1;
return s1.contains(s2);

}
}