IntelliJ IDEA 计算机基础知识 Jmeter EasyCVR iphone loops codeigniter dom unicode Avalon less使用 python数据挖掘实战pdf linux超级用户 ie内核浏览器怎么设置 short几个字节 vm虚拟化引擎 xcode打包 python的str python环境安装教程 python变量类型 python等待10秒 java实现 java运行环境 java时间格式化 javalist转数组 java字符比较 骁龙660和625 gilisoft cmd代码 无限视距 lol卡米尔 处理器虚拟化技术 deallocate 快剪辑去水印 cdr如何做立体字 ps原位粘贴 excel工作表下载 java计算器 quadro显卡 主题软件
当前位置: 首页 > 学习教程  > 编程语言

#力扣 LeetCode剑指 Offer 50. 第一个只出现一次的字符 @FDDLC

2020/12/28 18:44:57 文章标签:

题目描述: https://leetcode-cn.com/problems/di-yi-ge-zhi-chu-xian-yi-ci-de-zi-fu-lcof/ Java代码: class Solution {public char firstUniqChar(String s) {char answer ;int[] countnew int[z1]; //可以只用26个int,这里以空间换时间f…

题目描述:

https://leetcode-cn.com/problems/di-yi-ge-zhi-chu-xian-yi-ci-de-zi-fu-lcof/

 

Java代码:

class Solution {
    public char firstUniqChar(String s) {
        char answer=' ';
        int[] count=new int['z'+1]; //可以只用26个int,这里以空间换时间
        for(int i=0;i<s.length();i++)count[s.charAt(i)]++;
        for(int i=0;i<s.length();i++){
            if(count[s.charAt(i)]==1){
                answer=s.charAt(i);
                break;
            }
        }
        return answer;
    }
}

 

Java代码二:

class Solution {
    public char firstUniqChar(String s) {
        char answer=' ';
        int[] count=new int['z'+1]; //可以只用26个int,这里以空间换时间
        for(int i=0,l=s.length();i<l;i++)count[s.charAt(i)]++;
        for(int i=0,l=s.length();i<l;i++){
            if(count[s.charAt(i)]==1){
                answer=s.charAt(i);
                break;
            }
        }
        return answer;
    }
}

每次调用s.length()更耗时间,故优化之。

 

Java代码三:

import java.util.LinkedHashSet;
import java.util.LinkedList;

class Solution {
    public char firstUniqChar(String s) {
        int[] count=new int['z'+1],order=new int[Math.min(s.length(),26)]; //count可以只用26个int,这里以空间换时间
        for(int i=0,l=s.length(),ch,oi=0;i<l;i++){
            ch=s.charAt(i);
            if(count[ch]==0)order[oi++]=ch; //order用于给每个字母首次出现的位置排序
            count[ch]++;
        }
        for(int i=0;i<order.length;i++){
            if(count[order[i]]==1)return (char)order[i];
        }
        return ' ';
    }
}

 

 

 


本文链接: http://www.dtmao.cc/news_show_550106.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?