All things are difficult before they are easy. 没有软件的裸机是一具僵尸,没有硬件的软件是一个幽灵。2012,专注于Linux和C语言,关注自动化、性能测试,关注开源社区和开源测试工具、方法,尝试测试团队管理!
找一个字符串中的第一个重复字符(C和Java实现)
上一篇 /
下一篇 2010-10-20 19:14:23
/ 个人分类:C/C++
见到一个简单的笔试题:编程找到一个字符串中第一个重复出现的字符。先用C写了简单的代码,在用Java写了一下,没考虑程序效率,呵呵,无代码无真相。C代码如下:#include <string.h> #include <stdio.h>
int first_dup_char(char* str);
int main(int argc, char *argv[]) { char* str="abcdefgg"; int num=0; num = first_dup_char(str); if( num == -1 ) { printf("There's no duplicated char in the string:\n"); printf("%s\n",str); } else { printf("the first duplicated char is str[%d]='%c' in the string:\n",num,str[num]); printf("%s\n",str); } }
int first_dup_char(char* str) { int num=0; int j=0; for( num = 0 ; num<strlen(str) ; num++ ) { for( j=num+1 ; j<strlen(str) ; j++ ) { if( str[num] == str[j] ) { return num; } } } if( num == strlen(str) ) { return -1; } }
|
Java代码如下: public class FirstDupChar { public static void main(String[] args) { String str = "abcdefgd=etli"; int num = 0; num = FirstDupChar.FindFirstDupChar(str); if (num == -1) { System.out.println("There's no duplicated char in string:"); System.out.println(str); } else { System.out.println("The duplicated char is "+str.charAt(num)+" the index is "+num+" in string:"); System.out.println(str); } } private static int FindFirstDupChar(String str) { int i; for (i = 0; i < str.length(); i++) { if( str.indexOf(str.charAt(i), i+1) != -1) { return i; } } if (i == str.length()) { return -1; } return i; }
}
|
相关阅读:
- J2ME内存占用详解及优化方法 (xin_晴, 2010-10-11)
- 甲骨文与IBM将联手发展Java技术 (xin_晴, 2010-10-12)
- Java设计模式之综述篇 (xin_晴, 2010-10-12)
- Java反射机制浅析 (smile665, 2010-10-13)
- J2EE基础:浅谈依赖注入实现的方法 (xin_晴, 2010-10-13)
- 程序员的九重境界,你是第几重? (xin_晴, 2010-10-14)
- Java多线程程序四步轻松学成 (xin_晴, 2010-10-15)
- Java模块化概念解惑与现状总结 (xin_晴, 2010-10-18)
- 多线程开发的捷径:构建Java并发模型框架 (xin_晴, 2010-10-19)
- 经验分享 JVM调优方法总结 (xin_晴, 2010-10-20)
收藏
举报
TAG:
java
Java
重复字符