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;
    }

}



TAG: java Java 重复字符

 

评分:0

我来说两句

smile665

smile665

Stay hungry, stay foolish. 得意之时谨记,一半命运还掌握在上帝手里;失意之时须知,一半命运还掌握在自己手里。

日历

« 2024-05-03  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 956705
  • 日志数: 220
  • 建立时间: 2008-11-06
  • 更新时间: 2012-10-06

RSS订阅

Open Toolbar