以空格字符分隔的两个字符串;输入字符串的合法字符集为[a-zA-Z0-9 ],大小写敏感,无需考虑异常输入场景。
如果判定两个字符串异构同质,则输出true,否则输出false。
abc acb
true
2020秋招-后台1
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.HashMap;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] strs = br.readLine().trim().split(" ");
if(strs[0].length() != strs[1].length()){
System.out.println(false);
}else{
HashMap<Character, Integer> counter = new HashMap<>();
for(int i = 0; i < strs[0].length(); i++){
char c1 = strs[0].charAt(i);
char c2 = strs[1].charAt(i);
counter.put(c1, counter.getOrDefault(c1, 0) + 1);
counter.put(c2, counter.getOrDefault(c2, 0) - 1);
}
for(char key: counter.keySet()){
if(counter.get(key) != 0){
System.out.println(false);
return;
}
}
System.out.println(true);
}
}
} var line = readline().split(' ');
var line_1 = line[0].split(',');
line_1 = line_1[0].split('');
var line_2 = line[1].split(',');
line_2 = line_2[0].split('');
for (i = 0; i < line_1.length; i++){
for (j = 0; j < line_2.length; j++){
if (line_1[i] == line_2[j]){
line_1.splice(i,1);
line_2.splice(j,1);
i--;
j--;
}
}
}
if (line_1.length == 0 && line_2.length == 0){
console.log(true);
}else{
console.log(false);
} str1, str2 = input().split(' ')
def check(str1, str2):
if len(str1) != len(str2):
return 'false'
dic1, dic2 = {}, {}
for i in str1:
if i not in dic1:
dic1[i] = 1
else:
dic1[i] += 1
for j in str2:
if j not in dic2:
dic2[j] = 1
else:
dic2[j] += 1
keys = list(dic1.keys())
for key in keys:
if key in dic2 and dic1[key] == dic2[key]:
dic1.pop(key)
dic2.pop(key)
else:
return 'false'
if dic2:
return 'false'
return 'true'
print(check(str1, str2)) int main(){
char str1[30]={0};
char str2[30]={0};
scanf("%s",str1);
scanf("%s",str2);
int len1=strlen(str1);
int len2=strlen(str2);
int i, j, min;
char t;
for (i = 0; str1[i] != 0; i++)
{
min = i;
for (j = i + 1; str1[j] != 0; j++)
{
if (str1[j] < str1[min])
min = j;
}
t = str1[i];
str1[i] = str1[min];
str1[min] = t;
}
for (i = 0; str2[i] != 0; i++)
{
min = i;
for (j = i + 1; str2[j] != 0; j++)
{
if (str2[j] < str2[min])
min = j;
}
t = str2[i];
str2[i] = str2[min];
str2[min] = t;
}
if(strcmp(str1,str2)==0 ){
printf("true");
}else{
printf("false");
}
return 0;
}
import java.util.*;
public class Main{
public static void main(String args[]){
Scanner in=new Scanner(System.in);
while(in.hasNext()){
String str1=in.next();
String str2=in.next();
char []ch1=str1.toCharArray();
Arrays.sort(ch1);
char []ch2=str2.toCharArray();
Arrays.sort(ch2);
int flag=0;
for(int i=0;i<ch1.length;i++){
if(ch1[i]!=ch2[i]){
flag=1;
break;
}
}
if(flag==0)System.out.println("true");
else System.out.println("false");
}
}
} #include<stdio.h>
#include<string.h>
int compare(const char *str,const char * pst)
{
int key=0;
while ((*str != '\0')|| (*pst != '\0'))
{
key += (*str - *pst);
str++;
pst++;
}
if ((*str == '\0') && (*pst == '\0') && (key == 0))
{
return 1;
}
return 0;
}
int main()
{
char str[100] ;
char pst[100] ;
gets(str);
gets(pst);
if (compare(str, pst))
{
printf("true\n");
}
else
{
printf("false\n");
}
return 0;
} import java.util.HashMap;
import java.util.Map;
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().split(" ");
boolean result = findDifferent(str[0],str[1]);
System.out.println(result);
}
}
public static boolean findDifferent(String str1,String str2){
char[] char1 = str1.toCharArray();
char[] char2 = str2.toCharArray();
HashMap<Character,Integer> map = new HashMap<>();
for(int i=0;i<char1.length;i++){
map.put(char1[i],i);
}
for(int i=0;i<char2.length;i++){
if(map.containsKey(char2[i])){
continue;
}else{
return false;
}
}
return true;
}
} #include<iostream>
#include<map>
using namespace std;
int main() {
string s1; string s2;
while (cin >> s1 >> s2) {
if (s1.empty() && s2.empty()) {
cout<<"false"<<endl;
continue;
}
if (s1.size() != s2.size()) {
cout<<"false"<<endl;
continue;
}
map<char, int> m1;
map<char, int> m2;
for (auto x : s1) {
m1[x]++;
}
for (auto x : s2) {
m2[x]++;
}
map<char, int>::iterator it1 = m1.begin();
map<char, int> ::iterator it2 = m2.begin();
for (; it1 != m1.end() && it2 != m2.end(); ) {
if (it1->first == it2->first && it1->second == it2->second) {
++it1; ++it2;
}
else {
cout <<"false"<< endl;
break;
}
}
if (it1 == m1.end() && it2 == m2.end()) {
cout<<"true"<<endl;
}
}
system("pause");
return 0;
} C++使用map解决此类问题,逻辑简单
def Compare():
s = input('请输入两字符串,以空格隔开:')
s1,s2 =s.split(' ')[0],s.split(' ')[1]
new_s1,new_s2 = list(s1),list(s2)
new_s1.sort()
new_s2.sort()
if len(new_s1) != len(new_s2):
return False
else:
n = []
for i in range(len(new_s1)-1):
if new_s1[i] == new_s2[i]:
pass
else:
n.append(i)
break
if len(n)==0:
return True
else:
return False
print(Compare()) public class PingAn1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
String[] s = str.split(" ");
if (s[0].length() != s[1].length()) {
System.out.println("false");
return;
}
//可以合并到一个字典里面 26+26+10 设置好偏移量
int[] charDict1 = new int[26];
int[] charDict2 = new int[26];
int[] numDict = new int[10];
for (int i = 0; i < s[0].length(); i++) {
char c1 = s[0].charAt(i);
char c2 = s[1].charAt(i);
if (c1 >= 'a' && c1 <= 'z') {
charDict1[c1 - 'a']++;
} else if (c1 >= 'A' && c1 <= 'Z') {
charDict2[c1 - 'A']++;
} else if (c1 >= '0' && c1 <= '9') {
numDict[c1 - '0']++;
}
if (c2 >= 'a' && c2 <= 'z') {
charDict1[c2 - 'a']--;
} else if (c2 >= 'A' && c2 <= 'Z') {
charDict2[c2 - 'A']--;
} else if (c2 >= '0' && c2 <= '9') {
numDict[c2 - '0']--;
}
}
for (int i = 0; i < charDict1.length; i++) {
if (charDict1[i] != 0 || charDict2[i] != 0 || (i < 10 && numDict[i] != 0)) {
System.out.println("false");
return;
}
}
System.out.println("true");
} #include<bits/stdc++.h>
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
char str1[30]={0};
char str2[30]={0};
scanf("%s",str1);
scanf("%s",str2);
int len1=strlen(str1);
int len2=strlen(str2);
bool flag=false;
int count=0;
if(len1==len2){
sort(str1,str1+len1);
sort(str2,str2+len2);
for(int i=0;i<len1;i++){
int n,m;
n=str1[i];
m=str2[i];
if(n==m){
count++;
}
}
if(count==len1){
flag=true;
}
}
if(flag==false){
printf("false");
}
else printf("true");
return 0;
} import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
String str1 = input.split(" ")[0];
String str2 = input.split(" ")[1];
System.out.println(judge(str1, str2));
}
private static boolean judge(String str1, String str2) {
if (str1.length() != str2.length()) {
return false;
}
char[] arr1 = str1.toCharArray();
char[] arr2 = str2.toCharArray();
int sum = 0;
for (int i = 0; i < arr1.length; i++) {
for (int j = 0; j < arr2.length; j++) {
if (arr2[j] != '-') {
if (arr2[j] == arr1[i]) {
arr2[j] = '-';
sum++;
break;
}
}
}
}
return sum == str1.length();
}
}