11/2 上午

Posted afei-1123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了11/2 上午相关的知识,希望对你有一定的参考价值。

387. First Unique Character in a String

用一个freq表建立每个字符和其出现次数的映射,然后按顺序遍历字符串,找到第一个出现次数为1的字符,返回其位置即可,参见代码如下:

注意

1. freq[s.charAt(i) - ‘a‘] == 1
2. freq数组用256覆盖所有字符
class Solution {
    public int firstUniqChar(String s) {
        int[] freq = new int[256];
        for(int i = 0; i < s.length(); i++){
            freq[s.charAt(i) - ‘a‘]++;
        }
        for(int i = 0; i < s.length(); i++){
            if( freq[s.charAt(i) - ‘a‘] == 1)
                return i;
        }
        return -1;
    }
}

383. Ransom Note

同理,用freq表记录magazine的每一个字符在对应索引位置上的数。

第二次遍历用ransomNote遍历此表,如果对应位置上的值小于0,则表示不满足。

class Solution {
    public boolean canConstruct(String ransomNote, String magazine) {
        int[] freq = new int[26];
        for( int i = 0; i < magazine.length(); i++){
            freq[magazine.charAt(i) - ‘a‘]++;
        }
        for( int i = 0; i < ransomNote.length(); i++){
            if( --freq[ransomNote.charAt(i) - ‘a‘] < 0 )
                return false;
        }
        return true;
    }
}

 

以上是关于11/2 上午的主要内容,如果未能解决你的问题,请参考以下文章

vscode代码片段建议bug

用eclipse导入maven工程时显示少包如何解决?

累积和 - 选择层次结构的部分

如何安排在上午 9 点执行代码

16.9.5上午

微信小程序代码片段