Skip to content

Commit 3f96915

Browse files
authored
Merge pull request gzc426#270 from qingpiaodeyanshen/master
提交
2 parents 8548770 + 2862730 commit 3f96915

File tree

4 files changed

+122
-0
lines changed

4 files changed

+122
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#leetcode 443
2+
、、、
3+
class Solution {
4+
public int compress(char[] chars) {
5+
int count =1;
6+
int index= 0;
7+
for(int i=0;i<chars.length;i++){
8+
9+
//判断是否最后一个 或者 判断是否重复的最后一个
10+
if(i+1 == chars.length || chars[i]!=chars[i+1]){
11+
12+
13+
14+
//将字母赋值到结果字符数组中
15+
chars[index++]=chars[i];
16+
17+
//判断是否需要将数量赋值到数组中
18+
if(count>1){
19+
//int转为String
20+
String temp =String.valueOf(count);
21+
22+
//将数量赋值到结果数组中
23+
for(int z=0;z<temp.length();z++){
24+
//获取字符串中某个下标的字符
25+
chars[index++] =temp.charAt(z);
26+
}
27+
//初始化数量
28+
count=1;
29+
}
30+
}else{ //字符重复中
31+
count++;
32+
}
33+
}
34+
return index;
35+
}
36+
}
37+
、、、
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
#leetcode 890
2+
```
3+
//思路是保证对应下标的权重是一样的,只需要比较权重就可以判断是否符合规则
4+
class Solution {
5+
public static List<String> findAndReplacePattern(String[] words, String pattern) {
6+
List<String> result = new ArrayList<>();//返回结果
7+
char [] patternArray = pattern.toCharArray();//字符串转字符数组
8+
for(int i=0;i<words.length;i++)//遍历每一个words中的字符串
9+
{
10+
char [] wordArray = words[i].toCharArray();
11+
boolean flag = true;//标记,为true说明匹配
12+
if(wordArray.length == patternArray.length)//匹配肯定长度要相等
13+
{
14+
HashMap<Character,Character> judge = new HashMap<>();//hashmap1
15+
HashMap<Character,Character> judge2 = new HashMap<>();//反向比较hashmap2
16+
for(int j=0;j<pattern.length();j++)//遍历模式串中的每一个字符
17+
{
18+
if(judge.containsKey(patternArray[j]) == false)
19+
{//判断key中是否存在这个字符,不存在hashmap1就添加key-value
20+
judge.put(patternArray[j],wordArray[j]);
21+
if(judge2.containsKey(wordArray[j]) == false)
22+
{//这个if else的作用就是思路中的hashmap2的作用了
23+
judge2.put(wordArray[j],patternArray[j]);//不存在就添加
24+
}else {
25+
if(judge2.get(wordArray[j]) != patternArray[j]){
26+
flag = false;//存在的话就去判断是不是相等的,不相等就不匹配
27+
break;
28+
}
29+
}
30+
}else {//存在的话 去hashmap中找这个字符与现有的字符是否相等
31+
//不相等,说明存在了(a-c a-b 一个a对应两个字符)直接返回false,不匹配
32+
if(judge.get(patternArray[j]) != wordArray[j])
33+
{
34+
flag = false;
35+
break;
36+
}
37+
}
38+
}
39+
if(flag)
40+
{
41+
result.add(words[i]);
42+
}
43+
}
44+
45+
}
46+
return result;
47+
}
48+
}
49+
```
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#leetcode557
2+
```
3+
class Solution {
4+
public String reverseWords(String s) {
5+
String[] words=s.split(" ");
6+
StringBuffer result=new StringBuffer();
7+
for(String temp :words){
8+
int i=0;
9+
char[] chars=temp.toCharArray();
10+
for(char c:chars){
11+
i++;
12+
}
13+
for(i--;i>=0;i--){
14+
result.append(chars[i]);
15+
}
16+
result.append(" ");
17+
}
18+
result.deleteCharAt(result.length() - 1);
19+
return result.toString();
20+
}
21+
}
22+
```
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#leetcode 58
2+
```
3+
class Solution {
4+
public int lengthOfLastWord(String s) {
5+
String[] ss=s.split(" ");
6+
int index=0;
7+
if(ss.length>0){
8+
index=ss[ss.length-1].length();
9+
10+
}
11+
return index;
12+
}
13+
}
14+
```

0 commit comments

Comments
 (0)