ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

简单题200-400

2021-12-26 20:34:28  阅读:141  来源: 互联网

标签:200 return charAt int 400 ++ length 简单 String


200-300

263. 丑数

(https://leetcode-cn.com/problems/ugly-number/)

class Solution {
    public boolean isUgly(int n) {
        if(n < 1) return false;
        while(n % 5 == 0){
            n /= 5;
        }
        while(n % 3 == 0){
            n /= 3;
        }
        while(n % 2 == 0){
            n /= 2;
        }
        return (n == 1);
    }
}

300-400

345. 反转字符串中的元音字母

(https://leetcode-cn.com/problems/reverse-vowels-of-a-string/)

class Solution {
    public String reverseVowels(String s) {
        int length = s.length();
        char[] arr = new char[length]; // 返回数组
        Character[] num = new Character[length]; // 记录元音字符的数组
        int j = length-1;
        int k =0; // 元音数组索引
        while(j >= 0 ){
            char c = s.charAt(j--);
            // 遍历s,添加元音字符
            if(c == 'a'|| c == 'e' || c == 'i' || c == 'o' || c == 'u'
            || c=='A'||c=='E'||c=='I'||c=='O'||c=='U' ){
                num[k] = c;
                k++;
            }
        }
        int i = 0;
        k = 0; // 从0开始遍历
         while(i < length){
             char c = s.charAt(i); // 如果是元音字母,就替换
            if(c == 'a'|| c == 'e' || c == 'i' || c == 'o' || c == 'u'
            || c=='A'||c=='E'||c=='I'||c=='O'||c=='U'){
                arr[i++] = num[k++];
            }
            else arr[i++] = c; // 否则不改变字母位置
         }
         return new String(arr);
    }
}

383、赎金信

(https://leetcode-cn.com/problems/ransom-note/)

class Solution {
    public boolean canConstruct(String ransomNote, String magazine) {
        // 由于每个字符只能使用一次,所以可以使用hashMap来进行存储
        // 将magazin里面的每个字符进行存储,再将ransoNote中的字符一一对比
        Map<Character, Integer> map = new HashMap<>();
        for(int i = 0; i < magazine.length(); i++){
            if(!map.containsKey(magazine.charAt(i))){
                map.put(magazine.charAt(i), 1);
            }else {
                int value = map.get(magazine.charAt(i));
                map.put(magazine.charAt(i), value+1); // 字符计数加一
            }
        }
        for(int j = 0 ;j < ransomNote.length(); j++){
            if(map.containsKey(ransomNote.charAt(j))){
                int value = map.get(ransomNote.charAt(j));
                if(value > 0){
                    map.put(ransomNote.charAt(j), value-1); // 字符计数减一
                }else{
                    return false;
                }
            } else {
                return false;
            }
        }
        return true;
    }
}

387、字符串中的第一个唯一字符

(https://leetcode-cn.com/problems/first-unique-character-in-a-string/)

// 方法一: 利用索引来做
class Solution {
    public int firstUniqChar(String s) {
        int first = 0;
        int last = 0; 
        // 分别从前和从后查找该字符的位置,如果两个位置相同,则返回该位置索引
        for (int i = 0; i < s.length(); i++){
            first = s.indexOf(s.charAt(i));
            last = s.lastIndexOf(s.charAt(i));
            if(first == last){
                return i;
            }
        }
        return -1;
    }
}

// 方法二: 利用hash来进行存储

389、找不同

(https://leetcode-cn.com/problems/find-the-difference/)

class Solution {
    public char findTheDifference(String s, String t) {
        int res = 0; 
        // 对每个字符进行异或出来,因为其他单词出现的次数都是偶数次,只有多添加的单词出现奇数次
        for (char ch : s.toCharArray()){
            res ^= ch;
        }
        for (char ch : t.toCharArray()){
            res ^= ch;
        }
        return (char)res;
    }

}

392、判断子序列

(https://leetcode-cn.com/problems/is-subsequence/)

class Solution {
    public boolean isSubsequence(String s, String t) {
        int i = 0; 
        int j = 0;
        // 依次进行匹配
        while (i < t.length() && j < s.length()){
            char c = s.charAt(j);
            if(t.charAt(i) == c){ // 每匹配到一个字符就往下走一位
                j++;
             }
             i++;
        }
        if(j == s.length()) { // s遍历完,则匹配成功
            return true;
        }
        else return false;
    }
}

标签:200,return,charAt,int,400,++,length,简单,String
来源: https://www.cnblogs.com/funnn24/p/15733923.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有