修改字符串,使每个字符都被替换为键盘中的下一个字符
原文:https://www . geeksforgeeks . org/修改字符串,使每个字符都被替换为键盘中的下一个字符/
给定一个由小写英文字母组成的字符串。任务是用键盘上的下一个字母(以圆形方式)键改变字符串的每个字符。例如,‘a’替换为‘T5’,‘b’替换为‘n’,…..,‘l’替换为‘z’,…..,‘m’替换为‘q’。 例:****
输入: str = "极客" 输出: hrrld 输入: str = "plmabc" 输出: azqsnv
方法:对于英语字母表中的每个小写字符,在无序地图中将其旁边的字符插入键盘。现在逐个字符遍历给定的字符串,并用之前创建的映射更新每个字符。 以下是上述方法的实施:
C++
// C++ implementation of the approach
#include <bits/stdc++.h>
using namespace std;
const string CHARS = "qwertyuiopasdfghjklzxcvbnm";
const int MAX = 26;
// Function to return the modified string
string getString(string str, int n)
{
// Map to store the next character
// on the keyboard for every
// possible lowercase character
unordered_map<char, char> uMap;
for (int i = 0; i < MAX; i++) {
uMap[CHARS[i]] = CHARS[(i + 1) % MAX];
}
// Update the string
for (int i = 0; i < n; i++) {
str[i] = uMap[str[i]];
}
return str;
}
// Driver code
int main()
{
string str = "geeks";
int n = str.length();
cout << getString(str, n);
return 0;
}
Java 语言(一种计算机语言,尤用于创建网站)
// Java implementation of the approach
import java.util.*;
class GFG
{
static String CHARS = "qwertyuiopasdfghjklzxcvbnm";
static int MAX = 26;
// Function to return the modified String
static String getString(char[] str, int n)
{
// Map to store the next character
// on the keyboard for every
// possible lowercase character
Map<Character, Character> uMap = new HashMap<>();
for (int i = 0; i < MAX; i++)
{
uMap. put(CHARS.charAt(i),
CHARS.charAt((i + 1) % MAX));
}
// Update the String
for (int i = 0; i < n; i++)
{
str[i] = uMap.get(str[i]);
}
return String.valueOf(str);
}
// Driver code
public static void main(String []args)
{
String str = "geeks";
int n = str.length();
System.out.println(getString(str.toCharArray(), n));
}
}
// This code is contributed by Rajput-Ji
Python 3
# Python3 implementation of the approach
CHARS = "qwertyuiopasdfghjklzxcvbnm";
MAX = 26;
# Function to return the modified string
def getString(string, n) :
string = list(string);
# Map to store the next character
# on the keyboard for every
# possible lowercase character
uMap = {};
for i in range(MAX) :
uMap[CHARS[i]] = CHARS[(i + 1) % MAX];
# Update the string
for i in range(n) :
string[i] = uMap[string[i]];
return "".join(string);
# Driver code
if __name__ == "__main__" :
string = "geeks";
n = len(string);
print(getString(string, n));
# This code is contributed by AnkitRai01
C
// C# implementation of the approach
using System;
using System.Collections.Generic;
class GFG
{
static String CHARS = "qwertyuiopasdfghjklzxcvbnm";
static int MAX = 26;
// Function to return the modified String
static String getString(char[] str, int n)
{
// Map to store the next character
// on the keyboard for every
// possible lowercase character
Dictionary<char,
char> uMap = new Dictionary<char,
char>();
for (int i = 0; i < MAX; i++)
{
if(!uMap.ContainsKey(CHARS[i]))
uMap.Add(CHARS[i], CHARS[(i + 1) % MAX]);
else
uMap[CHARS[i]] = CHARS[(i + 1) % MAX];
}
// Update the String
for (int i = 0; i < n; i++)
{
str[i] = uMap[str[i]];
}
return String.Join("", str);
}
// Driver code
public static void Main(String []args)
{
String str = "geeks";
int n = str.Length;
Console.WriteLine(getString(str.ToCharArray(), n));
}
}
// This code is contributed by PrinciRaj1992
java 描述语言
<script>
// JavaScript implementation of the approach
var CHARS = "qwertyuiopasdfghjklzxcvbnm";
var MAX = 26;
// Function to return the modified string
function getString(string, n) {
var string = string.split("");
// Map to store the next character
// on the keyboard for every
// possible lowercase character
uMap = [];
for (let i = 0; i < MAX; i++) {
uMap[CHARS[i]] = CHARS[(i + 1) % MAX];
}
// Update the string
for (let i = 0; i < n; i++) {
string[i] = uMap[string[i]];
}
return string.join("");
}
// Driver code
var string = "geeks";
var n = string.length;
document.write(getString(string, n));
</script>
Output:
hrrld
版权属于:月萌API www.moonapi.com,转载请注明出处