小白笔记--------------leetcode(383. Ransom Note)

来源:互联网 发布:三星手机智能网络切换 编辑:程序博客网 时间:2024/06/15 18:41

用c语言处理超时了。。。。是我没找到正确的方法。

bool canConstruct(char* ransomNote, char* magazine) {    int i,j,k,count = 0;    int f[strlen(magazine)];    for(k = 0; k < strlen(magazine);k++){        f[k] = 0;    }    for(i = 0;i < strlen(ransomNote);i++){      for(j = 0;j < strlen(magazine);j++){          if(ransomNote[i] == magazine[j] && f[j] == 0){              f[j] = 1;              count++;              break;          }      }    }    if(count == strlen(ransomNote)){        return true;    }else{        return false;    }} 

后来看到别人用java写的,一个简单的ArrayList的contains方法就解决了,一脸懵逼。

public class Solution {    public boolean canConstruct(String ransomNote, String magazine) {        if(magazine == null) {            return false;        }        if(ransomNote == null) {            return true;        }                List<Character> list = new ArrayList<>();        for(Character ch: magazine.toCharArray()) {            list.add(ch);        }                for(Character ch : ransomNote.toCharArray()) {           if(list.contains(ch)) {               list.remove(ch);           } else {               return false;           }       }       return true;            }}


0 0
原创粉丝点击