int main(int argc, const char * argv[]) {
char string[100]={};
int count=0;
while (scanf("%c",&string[count]),string[count]!='\n') {//输入字符串并且求得字符串有效长度(既可见长度)
count++;
}
for (int i=0; i<count; i++) {//遍历字符串
int j=i;
while (j<count&&string[++j]!=string[i]) {//判断当前i字符后有没有字符与之相同,直到字符串结尾
}
if (string[j]==string[i]) {//当有一样的打印该字符,并退出程序
printf("%c",string[j]);
return 0;
}
}
return 0;
}
public class FindFirstTwiceChar {
public static void main(String[] args) {
String s = "qywcel23tld";
System.out.println(new FindFirstTwiceChar().find(s));
}
public char find(String str) {
char[] charArray = str.toCharArray();
int length = str.length();
for(int i = 1; i < length; i++) {
for(int j = 0; j < i; j++) {
if(charArray[i] == charArray[j]) {
return charArray[i];
}
}
}
return 0;
}
}
function find3(str){
str=String(str);
var len=str.length;
var count=1;
var occur="";
for (var i = 0; i < len-1; i++) {
for (var j = i+1; j < len; j++) {
if(str[i]==str[j]){
++count;
occur=str[j]
}
if(count>=3){
return occur;
}
}
occur=""
count=1;
}
return count>=3?occur:"";
}
//双层for循环解决方案
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char str[64] = "qywyer23tdd";
int i,j;
char ch;
for(i = 0;i < strlen(str);++i)
{
ch = str[i];
for(j = i+1;j < strlen(str);++j)
{
if(ch == str[j])
printf("%c",str[i]);
i = strlen(str);
break;
}
}
}
public static Character firstDup(String s){
Set<Character> set = new HashSet<Character>();//可利用set重查来实现
char[] string = s.toCharArray();
for(char tmp : string){
if(set.contains(tmp)){
return tmp;
}else{
set.add(tmp);
}
}
return null;
}
#include <stdio.h>
int main()
{
char flag[256];
memset(flag,0x00,sizeof(flag);
const char * str = "qywyer23tdd";
const char * p = str;
while(0!=*p) {
if ( flag[(unsigned char)(*p)]!=0x00 ) {
printf("%c\n");
break;
}
flag[(unsigned char)(*p)] = 0x01;
++p;
}
return 0;
}
public static Character firstDup(String s){
HashMap<Character, Integer> charCountMap = new HashMap<>();
for(int i = 0; i < s.length(); i++){
if(charCountMap.containsKey(s.charAt(i))){
return s.charAt(i);
}else
charCountMap.put(s.charAt(i), 1);
}
return null;
}
使用hashmap
class Solution{ char firstTwiceChar(string s){ if(s.size()<=1)return ''; unsigned int hashTable[256];//字符是8bit类型,最多有256种,开辟1k空间当做hash表 for(auto i = 0; i < 256; i++)hashTable[i] = 0; for(auto i = 0; i < s.size(); i++){ if(++hashTable[s[i]] == 2) return s[i]; } return '';//没有出现两次的字符 } }