一道笔试题(java)

ciweilijun 2009-05-13 05:41:55
加精
求第一个无重复字符,如"total"的第一个无重复字符是o,"teeter"的第一个无重复字符是r,效率要优于O(n的平方)
public static Character FirstNonRepeated(String)
...全文
3102 232 打赏 收藏 转发到动态 举报
写回复
用AI写文章
232 条回复
切换为时间正序
请发表友善的回复…
发表回复
copysimles 2010-04-07
  • 打赏
  • 举报
回复
大家都很强,虚心的学习中
Coffee94659568 2010-04-07
  • 打赏
  • 举报
回复


看不明白...
tuo_bing 2010-04-06
  • 打赏
  • 举报
回复
mark ................
wh070502219 2010-04-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 mt502 的回复:]
都是ascii字符的话比较简单,O(n)就可以了

Java code
public static Character FirstNonRepeated(String string) {
int[] counter = new int[128];
for (int i = 0; i < string.length(); i++) {
……
[/Quote]这个数组int[] counter = new int[128];
你设成128是不是按 ASCII码128个来的啊?我用120试了下能运行
我用char型也试了下 需要把数组设成
public static Character firstNonRepeated1(char[] chs) {
int[] counter = new int[100];
希望能有人帮我解答下 万分感激
sharke118 2010-03-24
  • 打赏
  • 举报
回复
public class DuplicatedString {

public static void main(String args[]){
String str = "jslhgpegsegejkkjk";
String[] s;
String st;
for(int i=0;i<str.length();i++){
st = String.valueOf(str.charAt(i));
s = str.split(st);
if(s.length == 2){
System.out.println("The first unduplicated String is:" + st);
}
}
}
}

定义放外面
sharke118 2010-03-24
  • 打赏
  • 举报
回复
public class DuplicatedString {

public static void main(String args[]){
String str = "jslhgpegsegejkkjk";
for(int i=0;i<str.length();i++){
String st = String.valueOf(str.charAt(i));
String[] s = str.split(st);
if(s.length == 2){
System.out.println("The first unduplicated String is:" + st);
}
}
}
}

这个怎么样
liuxuejin 2009-06-18
  • 打赏
  • 举报
回复
但是 题目并没有说字符串了不一定没有中文啊啊!!他只是说字符串,也就是说字符串里可能有中文
零起跑线 2009-06-18
  • 打赏
  • 举报
回复
学习了
zhufenghappy 2009-06-18
  • 打赏
  • 举报
回复
一个循环就可以了

public static Character FirstNonRepeated(String string) {
String strTemp=string;
for (int i = 0; i>-1; ) {
String ch = strTemp.substring(0,1);
int count=strTemp.length();
strTemp=strTemp.replace(ch, "");
if (strTemp.length()==count-1)
return ch.charAt(0);
if(strTemp.length()==0)
return null;
}
return null;
}
amoihin 2009-06-18
  • 打赏
  • 举报
回复
我好像以前看过这个问题...
public static Character FirstNonRepeated(String s){
HashMap<Character,Boolean> map = new HashMap<Character,Boolean>();
char[] carray = s.toCharArray();
for(int i=0;i<carray.length;i++){
Boolean b = map.get(carray[i]);
if(b==null){
map.put(carray[i], false);
}else if(b==false){
map.put(carray[i], true);
}
}

for(int i=0;i<carray.length;i++){
Boolean b = map.get(carray[i]);
if(b==false){
return carray[i];
}
}
return null;
}
livs_ly_2010 2009-06-18
  • 打赏
  • 举报
回复
路过,侧目了十多分钟.
wqq_721 2009-06-18
  • 打赏
  • 举报
回复
求第一个无重复字符,mark
3,18,34
zebiao 2009-06-18
  • 打赏
  • 举报
回复
高手如云啊!都不知道我在做什么?
jjdegg 2009-06-18
  • 打赏
  • 举报
回复
学习了....
lcwen_08 2009-06-17
  • 打赏
  • 举报
回复
第一次发帖。。
原来还的自己加上几楼啊,
3楼的思路跟我一模一样。。
lcwen_08 2009-06-17
  • 打赏
  • 举报
回复
思路跟我一模一样。。
msaden 2009-06-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 thuiones 的回复:]
Java code
public static char FirstNonRepeated(String str){
char[] array = str.toCharArray();
int num = 0;
for(int i=0 ; i<array.length ; i++){
for(int j=i+1 ; j<array.length ; j++){
if(array[i] == array[j]){
num++;
}
}
if(num == 0){
return array[i];
}else{

[/Quote]






这个很好哦!
simon-lee 2009-06-10
  • 打赏
  • 举报
回复
three floor's method i can't understand
leiyuanxiu 2009-06-10
  • 打赏
  • 举报
回复
package com.fengyu.notRepetString;

import java.util.*;

public class RepetString {

public char getNotReapetString(String str) {
char chFind = '0';
char[] ch = str.toCharArray();
for (int i = 0; i < ch.length; i++) {
char chTemp = ch[i];
int x = str.indexOf(chTemp);
int y = str.lastIndexOf(chTemp);
if (x == y) {
chFind = chTemp;
break;
}
}

return chFind;
}

}
www8388 2009-06-10
  • 打赏
  • 举报
回复

public static Character FirstNonRepeated(String str){
char ch=0;
for (int index=0;index<str.length();index++){
ch=str.charAt(index);
if(str.lastIndexOf(ch)==str.indexOf(ch)){
break;
}
}
return new Character(ch);
}
加载更多回复(208)

62,633

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧