Leetcode 387. First Unique Character in a String JAVA语言

简介:
1
2
3
4
5
6
7
8
9
Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1.
Examples:
s = "leetcode"
return 0.
 
s = "loveleetcode",
return 2.
 
Note: You may assume the string contain only lowercase letters.

题意:找到字符串中没有重复的字符,并且这个字符是第一个出现的。题目已经给出条件:输入的字符全部是小写,所以大小写区分这些问题就不用考虑了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public  class  Solution {
     public  int  firstUniqChar(String s) {
         /////超时了哈哈哈哈哈哈
         // int count,i;
         // for(i=0;i<s.length();i++){
         //     count=0;
         //     for(int j=0;j<s.length();j++){
         //         if(s.charAt(i)==s.charAt(j)){
         //             count++;
         //         }
         //     }
         //     if(count==1)
         //         return i;
         //     else 
         //         continue;
         // }
         // return -1;
         int [] hash= new  int [ 26 ];
         for ( int  i= 0 ;i<s.length();i++){
             hash[s.charAt(i)- 'a' ]++;
         }
         for ( int  i= 0 ;i<s.length();i++){
             if (hash[s.charAt(i)- 'a' ]== 1 ){
                 return  i;
             }
         }
         return  - 1 ;
     }
}

PS:额。。。。。。第一次暴力两层for循环,果然超时。

然后又是统计词频。。。。。。。。。。。。。。。。然后返回去遍历字符串找到第一个次数为1的即可。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。



本文转自 努力的C 51CTO博客,原文链接:http://blog.51cto.com/fulin0532/1890911

相关文章
|
JSON Java API
【干货满满】分享京东API接口到手价,用Java语言实现
本示例使用 Java 调用京东开放平台商品价格及优惠信息 API,通过商品详情和促销接口获取到手价(含优惠券、满减等),包含签名生成、HTTP 请求及响应解析逻辑,适用于比价工具、电商系统集成等场景。
|
10月前
|
Java
Java语言实现字母大小写转换的方法
Java提供了多种灵活的方法来处理字符串中的字母大小写转换。根据具体需求,可以选择适合的方法来实现。在大多数情况下,使用 String类或 Character类的方法已经足够。但是,在需要更复杂的逻辑或处理非常规字符集时,可以通过字符流或手动遍历字符串来实现更精细的控制。
572 18
|
10月前
|
存储 Java 索引
用Java语言实现一个自定义的ArrayList类
自定义MyArrayList类模拟Java ArrayList核心功能,支持泛型、动态扩容(1.5倍)、增删改查及越界检查,底层用Object数组实现,适合学习动态数组原理。
427 4
|
11月前
|
存储 Java Apache
Java语言操作INI配置文件策略
以上步骤展示了基本策略,在实际项目中可能需要根据具体需求进行调整优化。例如,在多线程环境中操作同一份配置时需要考虑线程安全问题;大型项目可能还需考虑性能问题等等。
395 15
|
算法 Java
Java语言实现链表反转的方法
这种反转方法不需要使用额外的存储空间,因此空间复杂度为,它只需要遍历一次链表,所以时间复杂度为,其中为链表的长度。这使得这种反转链表的方法既高效又实用。
706 0
|
JSON Java API
【干货满满】分享拼多多API接口到手价,用Java语言实现
本方案基于 Java 实现调用拼多多开放平台商品详情 API,通过联盟接口获取商品到手价(含拼团折扣与优惠券),包含签名生成、HTTP 请求及响应解析逻辑,适用于电商比价、导购系统集成。
|
JSON Java API
【干货满满】分享淘宝API接口到手价,用Java语言实现
本文介绍了如何使用 Java 调用淘宝开放平台 API 获取商品到手价,涵盖依赖配置、签名生成、HTTP 请求与响应解析等核心实现步骤。
|
API C# 开发者
WPF图形绘制大师指南:GDI+与Direct2D完美融合,带你玩转高性能图形处理秘籍!
【8月更文挑战第31天】GDI+与Direct2D的结合为WPF图形绘制提供了强大的工具集。通过合理地使用这两种技术,开发者可以创造出性能优异且视觉效果丰富的WPF应用程序。在实际应用中,开发者应根据项目需求和技术背景,权衡利弊,选择最合适的技术方案。
1371 1
|
安全 Java
【Java基础面试二十七】、说一说StringBuffer和StringBuilder有什么区别
这篇文章介绍了Java中StringBuffer和StringBuilder的区别:StringBuffer是线程安全的,而StringBuilder是非线程安全的,因此在单线程环境下优先推荐使用StringBuilder以获得更好的性能。

热门文章

最新文章