我计划进行现场面试,所以我准备几个基本问题.根据公司简介,他们在字符串操作问题上很重要.到目前为止,我手动编写了这些函数:
有人可以给我一个更经典的字符串问题列表,我可以在去那里之前练习吗?
这是一个面试问题我对它的解决方案感到困惑,我认为我需要堆栈来推送和弹出这些运算符和操作数,但是我需要两个堆栈,一个用于运算符,一个用于操作数?或者只是一个堆栈吗?我认为我们需要两个堆栈但是有没有办法解决使用一个堆栈?
我也有点困惑,这将如何工作,每次我得到一个运算符我会弹出我的两个最顶层的操作数并将结果推入操作数堆栈
preferance首先是括号,然后是divide,multioply和last减法然后加法
但是如何检查何时弹出两个操作数并进行必要的关节操作?
我们可以用C/C++中的左移位运算符来更快地将整数乘以2的幂.
但我们不能将左移运算符用于浮点数或双精度数,因为它们以不同的方式表示,具有指数分量和尾数分量.
我的问题是,
有什么办法吗?像左移运算符的整数更快地乘以浮点数?即使有2的幂?
我用C++创建了一个程序,它,从给定的整数中删除逗号().即2,00,00会返回20000.我没有使用任何新的空间.这是我创建的程序:
void removeCommas(string& str1, int len)
{
int j = 0;
for (int i = 0; i < len; i++)
{
if (str1[i] == ',')
{
continue;
}
else
{
str1[j] = str1[i];
j++;
}
}
str1[j] = '\0';
}
void main()
{
string str1;
getline(cin, str1);
int i = str1.length();
removeCommas(str1, i);
cout << "the new string " << str1 << endl;
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的结果:
Input : 2,000,00
String length =8
Output = 200000 …Run Code Online (Sandbox Code Playgroud) 这是我的构造函数的定义方式
public One (int [] a, int [] b)
{
A = a;
B = b;
C = new int [a.length + b.length];
}
Run Code Online (Sandbox Code Playgroud)
这是我为此创建一个对象的方式:
One A = new One ([1,3,5], [1,5,3]);
Run Code Online (Sandbox Code Playgroud)
我得到了多个错误,比如(int,int,int,int,int,int)没有定义构造函数和令牌上的语法错误,删除这些令牌.
有人可以告诉我哪里出错了?谢谢