我在接受采访时被问到了问题.我无法弄清楚如何处理这个问题.请指导我.
问题:如何知道一个字符串是否可以被分割成两个字符串 - 比如breadbanana可分段为面包和香蕉,而breadbanan则不是.您将获得一个包含所有有效单词的字典.
我遇到了一个必须在O(logn)中完成的面试问题
给定排序的整数数组和数字,找到数组中数字的开始和结束索引.
Ex1: Array = {0,0,2,3,3,3,3,4,7,7,9} and Number = 3 --> Output = {3,6}
Ex2: Array = {0,0,2,3,3,3,3,4,7,7,9} and Number = 5 --> Output = {-1,-1}
Run Code Online (Sandbox Code Playgroud)
我试图找到一个有效的算法,但这么胖也没有成功.
在做的时候我得到"左值作为增量操作数" *++a.我哪里错了?我认为这相当于*(a+1).这种行为很奇怪,因为*++argv工作正常.请帮忙.
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("Arg is: = %s\n", *++argv);
int a1[] = {1,2,3,4,5,6};
int a2[] = {7,8,9,10,11,12};
int *a[2];
a[0] = a1;
a[1] = a2;
printf("ptr = %d\n", *++a);
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我正在学习c ++并尝试一些东西.编译器没有在注释2行引发错误.
int main(){
vector<double> a1;
a1.push_back(3);
a1.push_back(7);
a1.push_back(2);
vector<double>& a2 = a1; //COMMENT 1: This line has no error
vector<double>& a4 = print(a2); //COMMENT 2: Why this line has error? R value is an object then it should be referenced by a4?
return 0;
}
vector<double> print(vector<double>& a3){
cout<<"In print function the size of vector is :";
cout<<a3.size()<<endl;
return a3;
}
Run Code Online (Sandbox Code Playgroud) 它打印3,而我想要打印2.我不明白我只增加一次的原因.如果这是正确使用指针t指针还让我知道?我刚刚制作了一个示例代码,以了解指针的指针是如何工作的.
#include<stdio.h>
void main(){
int a1[] = {1,2,3,4,5,6};
int a2[] = {7,8,9,10,11,12};
int *a3 = a1;
int *a4 = a2;
int **a[2];
a[0] = a3;
a[1] = a4;
printf("%d",*(++(*a)));
}
Run Code Online (Sandbox Code Playgroud)