python找出只出现一次的字符_找出字符串中第一个只出现一次的字符(题面已经更新)...

0

#include

#include

#include

int main(){

using namespace std;

string inp;

int nu;

char oup;

while(cin>>inp){

int len=inp.size();

vectornum(26,0);

for(int i=0;i

num[inp[i]-'a']++;

}

for(int j=0;j

if(num[inp[j]-'a']==1)

{nu=1;

oup=inp[j];

break;}

else nu=-1;

}

if(nu==1)cout<

else cout<

}

return 0;

}

发表于 2016-09-20 22:58:18

回复(0)

更多回答

32

#include

#include

int main()

{

using namespace std;

string str;

while(getline(cin,str))

{

unsigned int i;

for (i=0;i

{

if(str.find(str[i])==str.rfind(str[i]))

{

cout<

break;

}

}

if(i==str.size())

cout<

}

return 0;

}

发表于 2016-06-17 10:00:29

回复(12)

21

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

while(sc.hasNext()){

String str = sc.nextLine();

char[] cs = str.toCharArray();

for(int i = 0; i < cs.length; i++){

if(str.indexOf(cs[i]) == str.lastIndexOf(cs[i])){

System.out.println(cs[i]);

break;

}

}

}

sc.close();

}

}

发表于 2016-08-14 21:35:45

回复(8)

7

/*思路:每出现一次,就在对应数组中计数+1*/

#include

#include

using namespace std;

int main()

{

string str;

while(getline(cin,str))

{

int a[128]={0};//保存出现次数

bool flag=false;//判断是否找到

for(int i=0;i

++a[str[i]];

for(int i=0;i

if(a[str[i]]==1)//判断是否是第一个只出现一次的字符

{

cout<

flag=true;

break;//注意要break;

}

if(flag==false)//如果没有找到

cout<

}

return 0;

}

编辑于 2016-12-19 16:52:29

回复(3)

5

while True:

try:

string = input()

for i in string:

if string.count(i) == 1:

print(i)

break

else:

print(-1)

except:break

发表于 2020-03-27 23:54:10

回复(5)

5

用哈希统计词频

#include

#include

using namespace std;

const int tableSize = 256;

int hasTable[tableSize];

int main(){

string s;

while(cin>>s){

bool flag = false;

for(int i=0;i

for(int i=0;i

for(int i=0;!flag && i

if(hasTable[s[i]] == 1){

cout<

flag = true;

break;

}

}

if(!flag)

cout<

}

return 0;

}

编辑于 2016-08-27 10:18:20

回复(2)

7

python代码如下,先找到只出现一次的字符,并放到一个列表中,再遍历字符串,如果某个字符在列表中,直接输出这个字符即可。

只出现一次的字符,我使用了Counter模块,一句话就能找到只出现一次的字符的列表。 while True:

try:

from collections import Counter

a = input()

# c是只出现一次的字符的列表

c = list(map(lambda c: c[0], list(filter(lambda c: c[1] == 1, Counter(a).most_common()))))

# 如果c为空,说明没有出现一次的字符。输出-1

if not c:print(-1)

for i in a:

if i in c:

print(i)

break

except:

break

编辑于 2017-09-08 21:23:50

回复(5)

3

package HUAWEI2;

import java.util.Scanner;

/**

* 找出字符串中第一个只出现一次的字符

* @author Administrator

*

*/

public class Demo19 {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

while(sc.hasNext()){

String s = sc.next();

boolean flag = true;

for(int i=0;i

Character temp = s.charAt(i);

if(s.lastIndexOf(temp.toString())==s.indexOf(temp.toString())&&flag){

System.out.println(temp.toString());

flag = false;

}

}

if(flag){

System.out.println(-1);

}

}

sc.close();

}

}

发表于 2016-12-14 20:50:33

回复(0)

3

首先统计每个字符的个数 然后冲第一个字符开始判断是是不是为1  如果没有为1 的 输出 -1

发表于 2016-09-01 00:58:12

回复(0)

2

while True:

try:

a = input().strip()

for i in a:

if a.count(i) == 1:

print(i)

break

else:

print(-1)

except:

break

发表于 2020-12-04 22:15:52

回复(0)

2

//采用两个for循环遍历一个字符串,count==1则表明该元素在此字符串中唯一

#include

#include

using namespace std;

int main()

{

string str;

while (cin >> str)

{

int temp = 0;

int count = 0;

for (int i = 0;i 

{

for (int j = 0;j 

{

if (str[i] == str[j])

{

count++;

}

}

if (count == 1)

{

cout <

break;//此处直接跳出for循环,实现输出第一个唯一值的功能需求。

}

else if (count >= 2)

{

count = 0;

temp++;

}

}

if ((temp != 0)&&(count!=1))

{

cout <

}

}

}

发表于 2020-07-17 04:24:15

回复(0)

2

import java.util.*;

public class Main{

public static void main(String[] args){

Scanner sc = new Scanner(System.in);

while(sc.hasNext()){

String str = sc.nextLine();

boolean flag = false;

for(int i =0;i

char ch = str.charAt(i);

if(str.indexOf(ch)==str.lastIndexOf(ch)){

System.out.println(ch);

flag = true;

break;

}

}

if(!flag){

System.out.println(-1);

}

}

}

}

发表于 2020-07-14 09:35:37

回复(0)

2

import java.util.Scanner;

import java.util.LinkedHashMap;

public class Main

{

public static void main(String[] args)

{

Scanner sc = new Scanner(System.in);

while(sc.hasNextLine())

{

String s = sc.nextLine();

LinkedHashMap map = new LinkedHashMap<>();

for(int i = 0; i 

{

char ch = s.charAt(i);

if(!map.containsKey(ch)) map.put(ch, 1);

else map.put(ch, map.get(ch)+1);

}

boolean no1 = true;

for(char tmp : map.keySet())

{

if(map.get(tmp) == 1)

{

System.out.println(tmp);

no1 = false;

break;

}

}

if(no1) System.out.println(-1);

}

sc.close();

}

}

发表于 2020-02-23 14:14:50

回复(1)

2

#include

#include

#include

#include

#include

using namespace std;

int main()

{

string s;

int len;

int i,j;

while(getline(cin,s))

{

len=s.size();

for(i=0;i

{

if(s.find(s[i])==s.rfind(s[i]))

{

cout<

break;

}

}

if(i==len)

cout<

}

return 0;

}

发表于 2016-11-19 16:00:25

回复(0)

2

import java.util.Scanner;

public class OneTimesChar {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

while(scanner.hasNext()){

String line = scanner.nextLine();

System.out.println(getOneTimeChar(line));

}

scanner.close();

}

public static char getOneTimeChar(String line){

int index = -1;

char[] ch = line.toCharArray();

int[] count = new int[ch.length];

for(int i=0;i

count[i]=1;

}

for(int i=0;i

for(int j=i+1;j

if(ch[i]==ch[j]){

count[i]++;

count[j]++;

continue;

}

}

}

for(int i=0;i

if(count[i]==1){

index = i;

break;

}

}

return ch[index];

}

}

发表于 2016-08-10 15:08:45

回复(1)

2

#include

#include

using namespace std;

//开辟两个数组用来存字符出现的次数alpha和出现的时间点times.

//遍历字符串之后, 再同时遍历alpha和times, 找出alpha[i]==1 && times[i]最小的那个i即可

int alpha[58] = {0};

int times[58] = {0};

int main()

{

string s;

char res;

int min;

while(cin >> s) {

res = '#';

min = s.size()+1;

for(int i=0; i

alpha[s[i] - 'A'] ++;

times[s[i] - 'A'] = i;

}

for(int i=0; i

if(alpha[s[i]-'A']==1 && times[s[i]-'A']

res = s[i];

min = times[s[i]-'A'];

}

}

if('#' == res)

cout << "no" << endl;

else

cout << res << endl;

for(int i=0; i<58; i++) {

alpha[i]=0;

times[i]=0;

}

}

}

发表于 2016-08-09 10:22:43

回复(0)

3

//通过判断一个字符在字符串中的第一个索引和最后一个索引是否相同

import java.util.*;

public class Main{

public static void main(String[] args){

Scanner in = new Scanner(System.in);

while(in.hasNext()){

String str = in.nextLine();

char[] chs = str.toCharArray();

String result = "-1";

for(int i = 0; i < chs.length; i++){

if(str.indexOf(chs[i]) == str.lastIndexOf(chs[i])){

result = chs[i] + "";

break;

}

}

System.out.println(result);

}

in.close();

}

}

发表于 2017-03-20 22:33:54

回复(2)

1

import java.util.*;

public class Main{

public static void main(String[] args){

Scanner scanner = new Scanner(System.in);

while (scanner.hasNext()){

Boolean found = false;

List input = new ArrayList<>(Arrays.asList(scanner.next().split("")));

for (String s : input){

if (Collections.frequency(input,s) == 1){

System.out.println(s);

found = true;

break;

}

}

if (!found){

System.out.println("-1");

}

}

}

}

发表于 2021-01-19 00:25:28

回复(0)

1

#include 

using namespace std;

int main(){

string a;

while(cin>>a){

int len=a.size();

bool flag=true;

for(int i=0;i

int sum=0;

for(int j=0;j

if(a[i]==a[j])

sum++;

}

if(sum==1){

flag=false;

cout<

break;

}

}

if(flag)

cout<

}

return 0;

}

发表于 2020-08-16 17:37:26

回复(0)

1

import java.util.Scanner;

public class Main{

public static void main(String[] args){

Scanner scanner =new Scanner(System.in);

while(scanner.hasNext()){

String  str=scanner.next();

//构建二维矩阵统计字符出现的次数,只出一次列的和为1,即输出

int dp[][]=new int [str.length()][str.length()];

String chr="-1";

for(int i=0;i

int colSum=0;

for(int j=0;j

if(str.charAt(i)==str.charAt(j)){

dp[i][j]=1;

}else{

dp[i][j]=0;

}

colSum+=dp[i][j];

}

if(colSum==1){

chr=String.valueOf(str.charAt(i));

break;

}

}

System.out.println(chr);

}

}

}

发表于 2020-06-08 11:22:10

回复(0)

1

#include

(737)#include

int main()

{

char S[1024] = {0};

gets(S);

int count, i, j, len = 0;

len = strlen(S);

for(i = 0; i 

{

for(j = 0; j 

{

if(S[i] == S[j])

{

count++;

}

}

if (1 == count)

{

printf("%c\n", S[i]);

return 0;

}

else

{

count = 0;

}

}

if(0 == count)

{

printf("-1");

}

return 0;

}

找毛病

编辑于 2020-04-15 14:11:31

回复(1)

你可能感兴趣的:(python找出只出现一次的字符_找出字符串中第一个只出现一次的字符(题面已经更新)...)