Skip to content

Commit a9dee38

Browse files
authored
Merge pull request gzc426#13 from gzc426/master
syuan
2 parents 80afd92 + dd54252 commit a9dee38

File tree

92 files changed

+2726
-1
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

92 files changed

+2726
-1
lines changed

018429.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
int firstUniqChar(char* s) {
2+
int ascii[256]={0};
3+
int i=0,len;
4+
while(s[i]!='\0')
5+
{
6+
i++;
7+
}
8+
len=i;
9+
for(i=0;i<len;i++)
10+
{
11+
ascii[s[i]]++;
12+
}
13+
i=0;
14+
while(ascii[s[i]]!=1&&i<len) i++;
15+
if(i==len)
16+
return -1;
17+
return i;
18+
}

2018.11.18/大腩肚.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
public List<List<Integer>> threeSum(int[] nums) {
2+
final int length = nums.length;
3+
List<List<Integer>> result = new ArrayList<>();
4+
HashMap<Integer, int[]> hashMap = new HashMap<Integer, int[]>();
5+
6+
if (length < 3) return result;
7+
8+
Arrays.sort(nums);
9+
10+
for (int i = 0; i < length - 2; i++) {
11+
hashMap.clear();
12+
13+
if (i == 0 || nums[i] > nums[i - 1]) {
14+
for (int j = i + 1; j < length; j++) {
15+
16+
if (hashMap.containsKey(nums[j])) {
17+
ArrayList<Integer> elem = new ArrayList<Integer>(3);
18+
19+
elem.add(hashMap.get(nums[j])[0]);
20+
elem.add(hashMap.get(nums[j])[1]);
21+
elem.add(nums[j]);
22+
23+
result.add(elem);
24+
25+
while (j < (length - 1) && nums[j] == nums[j + 1]) j++;
26+
} else {
27+
int[] temp = new int[2];
28+
temp[0] = nums[i];
29+
temp[1] = nums[j];
30+
hashMap.put(0 - (nums[i] + nums[j]), temp);
31+
}
32+
}
33+
}
34+
}
35+
return result;
36+
}

2018.11.27-leetcode125/。。。.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
```
12
public boolean isPalindrome(String s){
23
if (s.length() >= 2){
34
int left = 0,right = s.length()-1;
@@ -26,3 +27,4 @@ public boolean isPalindrome(String s){
2627
}
2728
return true;
2829
}
30+
```

2018.11.27-leetcode125/暮成雪.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
class Solution {
2+
public boolean isPalindrome(String s) {
3+
4+
s = s.replaceAll("[^a-zA-Z]", "").toLowerCase();
5+
s = s.toLowerCase();
6+
char [] charArray = s.toCharArray();
7+
String temp = "";
8+
for(int i=0;i<charArray.length;i++)
9+
{
10+
if( ((int)charArray[i] >= 48 && (int)charArray[i] <= 57) || ((int)charArray[i] >= 97 && (int)charArray[i] <= 122))
11+
{
12+
temp += charArray[i];
13+
}
14+
}
15+
char [] resultArray = temp.toCharArray();
16+
int begin = 0;int end = resultArray.length - 1;
17+
while(begin < end)
18+
{
19+
if(resultArray[begin] == resultArray[end])
20+
{
21+
begin++;
22+
end--;
23+
}else{
24+
return false;
25+
}
26+
}
27+
return true;
28+
}
29+
}

2018.11.28-leetcode151/018429.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
int top=0;
2+
void push(char c,char* stack)
3+
{
4+
stack[top++]=c;
5+
}
6+
char pop(char* stack)
7+
{
8+
return stack[--top];//写入s1
9+
}
10+
void reverseWords(char *s) {
11+
int i=0,j=0,flag=0;
12+
while(s[i]!='\0') i++;
13+
char* stack = (char*)malloc(i);
14+
char* s1 = (char*)malloc(i+1);
15+
i--;
16+
while(i>=0)
17+
{
18+
if(s[i]==' ')
19+
{
20+
while(top!=0)//如果栈不为空
21+
{
22+
flag=1;
23+
s1[j++]=pop(stack);
24+
}
25+
if(flag==1)
26+
{
27+
s1[j++]=' ';
28+
flag=0;//重置flag
29+
}
30+
i--;
31+
}
32+
else
33+
{
34+
push(s[i--],stack);
35+
}
36+
}
37+
if(s[++i]!=' ')
38+
{
39+
while(top!=0)//如果栈不为空
40+
s1[j++]=pop(stack);
41+
s[j]=' ';
42+
}
43+
else
44+
j--;
45+
s1[j]='\0';
46+
s = strcpy(s,s1);
47+
free(s1);
48+
}

2018.11.28-leetcode151/。。。.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
```
12
public String reverseWords(String s) {
23
int i = s.length()-1,wordRight=-1;
34
StringBuilder builder = new StringBuilder();
@@ -25,3 +26,4 @@ public String reverseWords(String s) {
2526
}
2627
return builder.toString();
2728
}
29+
```

2018.11.29-leetcode443/。。。.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
public int compress(char[] chars) {
1+
```
2+
public int compress(char[] chars) {
23
int cur = 1;//压缩后字符串的长度
34
int repet = 1;
45
for (int i = 1; i < chars.length; i++){
@@ -24,3 +25,4 @@
2425
Log.d(new String(chars));
2526
return cur;
2627
}
28+
```

2018.11.29-leetcode443/妮可.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
```java
2+
package sy181203;
3+
4+
import java.util.ArrayList;
5+
import java.util.Arrays;
6+
7+
public class leetcode_443压缩字符串
8+
{
9+
10+
public static void main(String[] args)
11+
{
12+
char[] chars = {'a','b','b','b','c','c','b','b','b','b','b','b','b','b','b','b','b','b'};
13+
System.out.println(Arrays.toString(chars));
14+
15+
System.out.println(compress(chars));
16+
17+
}
18+
19+
public static int compress(char[] chars)
20+
{
21+
if(chars.length==0)
22+
return 0;
23+
int m=0,i=0,j;
24+
while(i<chars.length)//外层循环控制总次数
25+
{
26+
j=i;
27+
chars[m++]=chars[i];
28+
int k=0;//统计重复字母数
29+
while(j<chars.length && chars[i]==chars[j])//内层循环判断是不是同一个字母
30+
{
31+
k++;
32+
j++;
33+
}
34+
StringBuilder sb=new StringBuilder();
35+
if(k!=1)//k=1不用再加数字
36+
{
37+
while(k!=0)//除来减小,到0出循环
38+
{
39+
System.out.println("k%10 "+(k%10));
40+
sb.append((char)(k%10+48));
41+
k/=10;
42+
}
43+
}
44+
System.out.println("sb ==="+sb.toString());
45+
sb.reverse();//
46+
System.out.println("sbre ==="+sb.toString());
47+
for(char c:sb.toString().toCharArray())
48+
49+
{
50+
System.out.println("c="+c);
51+
chars[m++]=c;
52+
}
53+
i=j;//置位
54+
}
55+
System.out.println(Arrays.toString(chars));
56+
return m;
57+
}
58+
59+
}
60+
```
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+
、、、

2018.11.30-leetcode890/Avalon.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
class Solution {
2+
public List<String> findAndReplacePattern(String[] words, String pattern) {
3+
List<String> wlist = new ArrayList<>();
4+
int len = words.length;
5+
String template = getTemplate(pattern);
6+
for (int i=0;i<len;i++){
7+
if (words[i].length()==pattern.length()){
8+
String temp = getTemplate(words[i]);
9+
if (temp.equals(template))
10+
wlist.add(words[i]);
11+
}
12+
}
13+
return wlist;
14+
}
15+
16+
private static String getTemplate(String pattern){
17+
char[] cs = pattern.toCharArray();
18+
List<Character> cl = new ArrayList<>();
19+
String result="";
20+
int len = cs.length;
21+
for (int i=0;i<len;i++){
22+
if (cl.contains(cs[i]))
23+
result+=String.valueOf(cl.indexOf(cs[i])+1);
24+
else{
25+
cl.add(cs[i]);
26+
result += String.valueOf(cl.size());
27+
}
28+
}
29+
return result;
30+
}
31+
}

0 commit comments

Comments
 (0)