两个字符串给,你必须修改1字符串使得第二个字符串的所有常用的字符都被删除,第二字符串的常见的字符必须与第一字符串的常见的字符并置。
例子:
Input : S1 = "aacdb"
S2 = "gafd"
Output : "cbgf"
Input : S1 = "abcs";
S2 = "cxzca";
Output : "bsxz"
这个想法是使用哈希映射,其中键是字符,值是存在字符的字符串数。如果一个字符是出现在一个字符串,然后数为1,否则,如果字符存在于两个字符串,数是2。
- 将结果初始化为空字符串。
- 将地图中第二个字符串的所有字符推入计数为 1。
- 遍历第一个字符串并将所有这些字符附加到地图中不存在的结果中。出现在地图中的字符,计数为 2。
- 遍历第二个字符串并将所有这些字符附加到计数为 1 的结果中。
C++
// C++ program Find concatenated string with
// uncommon characters of given strings
#include
using namespace std;
string concatenetedString(string s1, string s2)
{
string res = ""; // result
// store all characters of s2 in map
unordered_map m;
for (int i = 0; i < s2.size(); i++)
m[s2[i]] = 1;
// Find characters of s1 that are not
// present in s2 and append to result
for (int i = 0; i < s1.size(); i++) {
if (m.find(s1[i]) == m.end())
res += s1[i];
else
m[s1[i]] = 2;
}
// Find characters of s2 that are not
// present in s1.
for (int i = 0; i < s2.size(); i++)
if (m[s2[i]] == 1)
res += s2[i];
return res;
}
/* Driver program to test above function */
int main()
{
string s1 = "abcs";
string s2 = "cxzca";
cout << concatenetedString(s1, s2);
return 0;
}
Java
// Java program Find concatenated string with
// uncommon characters of given strings
import java.util.*;
import java.lang.*;
import java.io.*;
class gfg {
public static String concatenatedString(String s1, String s2)
{
// Result
String res = "";
int i;
// creating a hashMap to add characters in string s2
HashMap m = new HashMap();
for (i = 0; i < s2.length(); i++)
m.put(s2.charAt(i), 1);
// Find characters of s1 that are not
// present in s2 and append to result
for (i = 0; i < s1.length(); i++)
if (!m.containsKey(s1.charAt(i)))
res += s1.charAt(i);
else
m.put(s1.charAt(i), 2);
// Find characters of s2 that are not
// present in s1.
for (i = 0; i < s2.length(); i++)
if (m.get(s2.charAt(i)) == 1)
res += s2.charAt(i);
return res;
}
// Driver code
public static void main(String[] args)
{
String s1 = "abcs";
String s2 = "cxzca";
System.out.println(concatenatedString(s1, s2));
}
}
/* This code is contributed by Devarshi_Singh*/
Python 3
# Python3 program Find concatenated string
# with uncommon characters of given strings
def concatenetedString(s1, s2):
res = "" # result
m = {}
# store all characters of s2 in map
for i in range(0, len(s2)):
m[s2[i]] = 1
# Find characters of s1 that are not
# present in s2 and append to result
for i in range(0, len(s1)):
if(not s1[i] in m):
res = res + s1[i]
else:
m[s1[i]] = 2
# Find characters of s2 that are not
# present in s1.
for i in range(0, len(s2)):
if(m[s2[i]] == 1):
res = res + s2[i]
return res
# Driver Code
if __name__ == "__main__":
s1 = "abcs"
s2 = "cxzca"
print(concatenetedString(s1, s2))
# This code is contributed
# by Sairahul099
C#
// C# program Find concatenated string with
// uncommon characters of given strings
using System;
using System.Collections.Generic;
class GFG
{
public static String concatenatedString(String s1,
String s2)
{
// Result
String res = "";
int i;
// creating a hashMap to add characters
// in string s2
Dictionary m = new Dictionary();
for (i = 0; i < s2.Length; i++)
if (!m.ContainsKey(s2[i]))
m.Add(s2[i], 1);
// Find characters of s1 that are not
// present in s2 and append to result
for (i = 0; i < s1.Length; i++)
if (!m.ContainsKey(s1[i]))
res += s1[i];
else
m[s1[i]] = 2;
// Find characters of s2 that are not
// present in s1.
for (i = 0; i < s2.Length; i++)
if (m[s2[i]] == 1)
res += s2[i];
return res;
}
// Driver code
public static void Main(String[] args)
{
String s1 = "abcs";
String s2 = "cxzca";
Console.WriteLine(concatenatedString(s1, s2));
}
}
// This code is contributed by PrinciRaj1992
输出:
bsxz
如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程和学生竞争性编程现场课程。