Javascript 编写一个优化程序,从字符串中删除数字,然后结果字符串应该反转

Javascript 编写一个优化程序,从字符串中删除数字,然后结果字符串应该反转,javascript,Javascript,编写一个最佳程序,从字符串中删除数字,然后结果字符串应该反转,例如任何语言的Input=“A1B2”Output=“BA” 我提出的方案是 var str = "A1B2"; var temp = ""; for(var i = str.length - 1; i >= 0; i--) { if(!(str[i] >= 0 && str[i] <= 9)) temp += str[i] } var str=“A1B2”; var tem

编写一个最佳程序,从字符串中删除数字,然后结果字符串应该反转,例如任何语言的Input=“A1B2”Output=“BA”

我提出的方案是

var str = "A1B2";
var temp = "";
for(var i = str.length - 1; i >= 0; i--) {
    if(!(str[i] >= 0 && str[i] <= 9))
        temp += str[i]
}
var str=“A1B2”;
var temp=“”;
对于(变量i=str.length-1;i>=0;i--){

如果(!(str[i]>=0&&str[i]从输入的最后一个位置开始,检查它是否是一个数字,如果是,则跳过它,否则,添加它

public static void main(String[] args) throws IOException {
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    String input = reader.readLine();
    String newWord = "";

    for (int i = input.length() - 1; i >= 0; i--) {
        if (input.charAt(i) < '0' || input.charAt(i) > '9') {
            newWord += input.charAt(i);
        }
    }

    System.out.println(newWord);
}



Input: 
B224SA54ABCR

Output:
RCBAASB
publicstaticvoidmain(字符串[]args)引发IOException{
BufferedReader reader=新的BufferedReader(新的InputStreamReader(System.in));
字符串输入=reader.readLine();
字符串newWord=“”;
对于(int i=input.length()-1;i>=0;i--){
if(input.charAt(i)<'0'| | input.charAt(i)>'9'){
newWord+=输入字符(i);
}
}
System.out.println(newWord);
}
输入:
B224SA54ABCR
输出:
RCBAASB

从输入的最后一个位置开始,检查它是否是数字,如果是,则跳过它,否则,添加它

public static void main(String[] args) throws IOException {
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    String input = reader.readLine();
    String newWord = "";

    for (int i = input.length() - 1; i >= 0; i--) {
        if (input.charAt(i) < '0' || input.charAt(i) > '9') {
            newWord += input.charAt(i);
        }
    }

    System.out.println(newWord);
}



Input: 
B224SA54ABCR

Output:
RCBAASB
publicstaticvoidmain(字符串[]args)引发IOException{
BufferedReader reader=新的BufferedReader(新的InputStreamReader(System.in));
字符串输入=reader.readLine();
字符串newWord=“”;
对于(int i=input.length()-1;i>=0;i--){
if(input.charAt(i)<'0'| | input.charAt(i)>'9'){
newWord+=输入字符(i);
}
}
System.out.println(newWord);
}
输入:
B224SA54ABCR
输出:
RCBAASB

您应该在字符串中逐字符迭代,并检测当前字符是否为字母,可以使用。保留将通过从字符串的末尾迭代到开头来完成,就像您在显示的代码中所做的那样。至少这是我在C中所做的,但java中存在其他更简单的方法。 如果之前没有初始化temp,则不应使用
temp+=”
。我不建议您以最佳方式使用任何方法或函数,因为这取决于语言

下面是一个可能的C解决方案:

#include <stdio.h>
#include <string.h>
#include <ctype.h>

char line[128] = "A1B2C9C841630ERV221";
char res[128] = "";
for (int i = strlen(line) -1; i >= 0; --i)
{
    if (isalpha(line[i]))
    {
        char currentChar[2];
        currentChar[1] = 0;
        currentChar[0] = line[i];
        strcat(res, currentChar);
    }
}
printf("%s\n", res);

Output : VRECCBA
#包括
#包括
#包括
字符行[128]=“A1B2C9C841630ERV221”;
char res[128]=“”;
对于(int i=strlen(line)-1;i>=0;--i)
{
if(isalpha(第[i]行)
{
char-currentschar[2];
currentChar[1]=0;
currentChar[0]=第[i]行;
strcat(res,currentChar);
}
}
printf(“%s\n”,res);
输出:VRECCBA

唯一需要注意的是
res
的大小,我将其设置为128,这可能不够,具体取决于您输入的字符串的长度。

您应该在字符串中逐字符迭代,并检测当前字符是否为字母,可以使用。通过迭代fr来完成保留从字符串的结尾一直到开头,正如您在所示的代码中所做的那样。至少这是我在C中所做的,但java中还有其他更简单的方法。 如果之前没有初始化temp,则不应使用
temp+=”
。我不建议您以最佳方式使用任何方法或函数,因为这取决于语言

下面是一个可能的C解决方案:

#include <stdio.h>
#include <string.h>
#include <ctype.h>

char line[128] = "A1B2C9C841630ERV221";
char res[128] = "";
for (int i = strlen(line) -1; i >= 0; --i)
{
    if (isalpha(line[i]))
    {
        char currentChar[2];
        currentChar[1] = 0;
        currentChar[0] = line[i];
        strcat(res, currentChar);
    }
}
printf("%s\n", res);

Output : VRECCBA
#包括
#包括
#包括
字符行[128]=“A1B2C9C841630ERV221”;
char res[128]=“”;
对于(int i=strlen(line)-1;i>=0;--i)
{
if(isalpha(第[i]行)
{
char-currentschar[2];
currentChar[1]=0;
currentChar[0]=第[i]行;
strcat(res,currentChar);
}
}
printf(“%s\n”,res);
输出:VRECCBA

唯一需要注意的是
res的大小,我将其设置为128,这可能不够,具体取决于您输入的字符串长度。

如您所述,您需要任何语言的答案

在爪哇

String str="A1B2";
String answer = new StringBuilder(str.replaceAll("[0-9]","")).reverse().toString();
System.out.println(answer); 

正如你提到的,你需要任何语言的答案

在爪哇

String str="A1B2";
String answer = new StringBuilder(str.replaceAll("[0-9]","")).reverse().toString();
System.out.println(answer); 

java!=javascript.
你想问一个问题吗?问题是什么?我们怎么可能找到一个适用于任何语言的答案?什么是“最佳”意思?最短的代码、最快的执行速度、最小的内存使用量,或者……?
input.replace(/\d/g.)。split(“”)。reverse()。join(“”)
是一行完成的吗。。。“我的老板对此不满意”-显示的代码包含语法错误,无法运行,所以可能这就是原因。
java!=javascript。
您想问一个问题吗?问题是什么?我们怎么可能找到一个适用于任何语言的答案?什么是“最优”呢“平均值?最短的代码、最快的执行、最小的内存使用,或者…?
input.replace(/\d/g)、.split(”“).reverse().join(”“)
一行完成…”我的老板不满意-嗯,显示的代码包含语法错误,无法运行,所以可能这就是原因。看看你是否不明白这是如何工作的。看看你是否不明白这是如何工作的。我知道temp没有初始化,这是一个打字错误无论如何感谢你的时间我知道temp没有初始化,这是一个打字错误无论如何感谢你的时间是的这就是我上面写的程序是一样的,但我的老板似乎对这段代码不满意,所以如果有更好的解决方案,我就来这里!!这两个程序不一样。你把字符与数字而不是字符代码进行了比较-在C中,你的输出将与输入相同。是的,这就是程序的内容我上面写的都是一样的,但是我的老板似乎对这段代码不满意,所以如果有更好的解决方案,我就来这里!!这两个程序不一样。你把字符与数字而不是字符代码进行了比较-在C中,你的输出将与输入相同。