topics

全部话题 - 话题: str
首页 3 4 5 6 7 末页 (共10页)
j*****u
发帖数: 1133
1
1. 我一开始想成根据history的stock price来做predict了,想了半天。。。
其实是这个题的变种
int array A里找两个position i和j,要求A[j]和A[i]的差maximum,同时i static void BestDay(int[] stockPrices, out int buyDate, out int sellDate)
{
buyDate = sellDate = 0;
int maxDiff = 0, minPrice = stockPrices[0], minPriceDate = 0;
for (int i = 1; i < stockPrices.Length; ++i)
{
int price = stockPrices[i];
int diff = price - minPrice;
if (diff > maxDiff)
{
buyDate = minPriceDate;
s... 阅读全帖
s*******f
发帖数: 1114
2
来自主题: JobHunting版 - Facebook Phone Inteview + 流程请教
//A. Given an arbitrary tree, can you print it level by level (with each
level
//printed on the same line).Define your own tree node structure, can be
//binary tree or n-ary tree.
struct Node{
int d;
std::vector children;
};
void PrintByLevel(Node *r){
if (!r)
return;
std::queue q;
q.push(r);
int pre_count = 1;
int count = 0;
while (!q.empty()){
Node *p = q.front();
for (std::vector::const_iterator ci = p-
>children.begin(); ci != p->children.end(); ++ci){
q.push(*ci);
++cou... 阅读全帖
l*****a
发帖数: 14598
3
来自主题: JobHunting版 - 问一道关于字符串的面试题
step1: sort input string
step2:
for(int i=start;i {
if(i!=start)&&(str[i]==str[i-1]) continue;
swap(str[i],str[start]);
func(i+1,str);
swap(str[i],str[start]);
}
g******0
发帖数: 221
4
来自主题: JobHunting版 - 问个 Palindrome 的问题
Start from the front and the back at the same time.
Back always decrease, front can increase or reset to 0.
O(n)
working code attached in c++.
===========================
#include
#include
using namespace std;
char* longestPalindromePrefix(char* str, int len)
{
bool flag = 0;
int front = 0;
int back = len-1;
// Find palindrome
while(front < back)
{
if (str[front] == str[back])
{
flag = 1;
front++;
back--;
}
else
{
fl... 阅读全帖
c******t
发帖数: 1500
5
我改了一点你的程序,刚在VS 2008下编译通过了
#include
using namespace std;
void reverse (char *str);
int main(){
char str[] = "hello";
reverse(str);
cout< }
void reverse(char *str){
char* begin = str;
char* end = str;
char tmp;
if(str)
{
while(*end)
++end;
--end;
while(begin {
tmp = *begin;
*begin = *end;
*end=tmp;
++begin;
--end;
}
}
... 阅读全帖
s*****y
发帖数: 897
6
根据题目和next_permutation 的实现,写了个相应的,assume input string is
sorted
inline void swap(char *i, char *j) {
char tmp = *i;
*i = *j;
*j = tmp;
}
inline void reverse(char *start, char *end){
while (start < end) {
swap(start, end);
start ++;
end--;
}
}
bool perm_loop(char *str, char *start, char *end) {
char *i = end-1;
//find first two pairs from the end that *i < *(i+1)
while((i >= start) &&(*i >= *(i+1))) i--;
//could not find such pair
if... 阅读全帖
s*****y
发帖数: 897
7
根据题目和next_permutation 的实现,写了个相应的,assume input string is
sorted
inline void swap(char *i, char *j) {
char tmp = *i;
*i = *j;
*j = tmp;
}
inline void reverse(char *start, char *end){
while (start < end) {
swap(start, end);
start ++;
end--;
}
}
bool perm_loop(char *str, char *start, char *end) {
char *i = end-1;
//find first two pairs from the end that *i < *(i+1)
while((i >= start) &&(*i >= *(i+1))) i--;
//could not find such pair
if... 阅读全帖
g**********y
发帖数: 14569
8
来自主题: JobHunting版 - 问个google面试题
sigh, 边界条件又写错了,修改版:
public boolean matches(String pattern, String str) {
int i = 0;
while (i < pattern.length() && pattern.charAt(i) != '?'
&& pattern.charAt(i) != '*')
i++;
if (i == pattern.length())
return pattern.equals(str);
char c = pattern.charAt(i - 1);
if (pattern.charAt(i) == '?') {
return pattern.substring(0, i - 1).equals(str.substring(0, i - 1
))
&& (matches(c + pattern.sub... 阅读全帖
s**********e
发帖数: 326
9
我来贴个general的code
void diagnalPattern(char* str, int rowNum){
int charNum = 0;
for(int i = 0; i < strlen(str); i++){
if(isValidChar(str[i])){
charNum++;
}
}
int colNum = (charNum + rowNum - 1) / rowNum;
char** arr;
arr = new char*[rowNum];
for(int i = 0; i < rowNum; i++)
arr[i] = new char[colNum];
for(int i = 0 ; i < rowNum; i++)
for(int j = 0; j < colNum; j++)
arr[i][j] = ' ';
int curPos = 0;
... 阅读全帖
f*******t
发帖数: 7549
10
平衡括号的题可以用贪心法做吧
#include
#include
#include
#include
#define INVALIDCHAR -1
using namespace std;
char *balance(char *str)
{
int len = strlen(str);
if(len < 1)
return NULL;

char *buff = (char*)calloc(len + 1, 1);
stack left;
for(int i = 0; i < len; i++) {
if(str[i] == '(')
left.push(i);
else if(str[i] == ')') {
if(left.empty()) {
buff[i] = INVALIDCHAR;
co... 阅读全帖
d********w
发帖数: 363
11
来自主题: JobHunting版 - 一道google 面试题
需要逻辑缜密阿,
我实现的好像有bug,大家能想到比较好的办法么
static int encode(String str) {
int num = 0;
int sum = 0;
int cur = 0;
boolean vowelBefore = false;
boolean vowel;
str = str.toLowerCase();
for ( int i=0; i< str.length(); i++) {
if (map.get(str.charAt(i)) != null) {
cur = map.get(str.charAt(i));
vowel = true;
} else {
vowel = false;
}

if (str.char... 阅读全帖
g*****1
发帖数: 998
12
来自主题: JobHunting版 - 请教一道c/c++题 (转载)
【 以下文字转载自 Programming 讨论区 】
发信人: guagua1 (), 信区: Programming
标 题: 请教一道c/c++题
发信站: BBS 未名空间站 (Fri Jan 27 22:47:12 2012, 美东)
char *m()
{
char str[50];
strcpy(str,"how are you");
return str;
}
int main()
{
char s[50];
strcpy(s,m());
printf("%s",s);
//cin.get();
return 0;
}
为什么结果可以正确输出呢?我知道return by pointer可以make copy,可是return之
后storage不是free了吗?
另外,为什么下面这个就只能由一部分正确输出?
char *m()
{
char str[20];
strcpy(str,"how are you");
return str;
}
int main()
{

printf("%s",m());
//cin.get();... 阅读全帖
p*i
发帖数: 411
13
int myatoi(const string& str) {
const int n = str.size();
int curr = 0; // current index
while ((curr < n) && (isspace(str[curr]))) curr++; // skip leading
spaces
int sign = 1; // positive
if (str[curr] == '-') {
sign = -1; curr++;
}
if (curr == n)
throw runtime_error("Invalid input");
// prepare overflow check
int base, extra;
if (sign == 1) {
base = numeric_limits::max() / 10;
extra = numeric_limits::max() % 10;
... 阅读全帖
r*****k
发帖数: 1281
14
来自主题: JobHunting版 - 上一道题吧
大侠们帮看看对不对。。。
思想:从第一个开始扫描 遇到 (, i++
遇到 ), 如果i>0 {i--; 如果i==0 或者下一个字符不是),说明找到一个local
longest
match,reset i=0,比较这个是不是目前最大match, 是就存起来,不是就抛弃}
------------------------------------
void matchs(char* str, int& max, int &num){
int i =0; max=0, num=0;
int curr_len=0;

if(*str == '\0' || str == NULL) {max=0; num=0; return;}

//if there is a match, put the len of this match to vector
vector match;
while(*str != '\0'){
char next = *(str+1);
if(*str == '(')... 阅读全帖
r*****k
发帖数: 1281
15
来自主题: JobHunting版 - 上一道题吧
把我程序里面的match found condition
从if(i==0 || next != ')') 改为 if(i==0 && next != '(')应该就可以handle你这种
情况了。
-----------------------------------------------------
void matchs1(char* str, int& max, int &num){
int i =0; max=0, num=0;
int curr_len=0;

if(*str == '\0' || str == NULL) {max=0; num=0; return;}

//if there is a match, put the len of this match to vector
vector match;
while(*str != '\0'){
char next = *(str+1);
... 阅读全帖
s******n
发帖数: 3946
16
来自主题: JobHunting版 - 函数atoi的实现
要那么复杂么,只要判断前一个数和后一个数是否翻转了"-"即可
int atoi(char* str) {
bool neg = false;
if (*str=="-") {
str++;
neg = true;
} else if (*str=="+")
str++;
int value = 0;
while (*str) {
int digit = *str-'0';
if (digit>9 || digit<0) throw "error";
int newvalue = value*10 + neg?(-digit):digit;
if (value>0 && newvalue<0 || value<0 && newvalue>0) throw "overflow";
value = newvalue;
str++;
}
return value;
}
}
p*****2
发帖数: 21240
17
来自主题: JobHunting版 - 问一个G家面试题
我来写一个标准的吧。也练练手。
public class test
{
public static void main(String[] args)
{
new test().run();
}
PrintWriter out = null;
int score(String str, int start, int len)
{
if (len == 2)
{
if (str.charAt(start) == str.charAt(start + 1))
return 2;
}
else if (len == 3)
{
char[] a = str.substring(start, start + 3).toCharArray();
if (a[0] == a[1] && a[1] == a[2])
return... 阅读全帖
p*****2
发帖数: 21240
18
来自主题: JobHunting版 - 问一个G家面试题

不好意思。刚才写的太滥了。没有优化。这次这个应该才是标准的。
import java.io.*;
import java.util.*;
public class test
{
public static void main(String[] args)
{
new test().run();
}
PrintWriter out = null;
int score(String str, int start, int len)
{
if (len == 2)
{
if (str.charAt(start) == str.charAt(start + 1))
return 2;
}
else if (len == 3)
{
char[] a = str.substring(start, start + 3).toCharArray();
if... 阅读全帖
s*******f
发帖数: 1114
19
来自主题: JobHunting版 - 攒个人品,发个google电话面试题
//回报本版,码遍本版
//Given a string of sorted integers, e.g. "1 52 69 456789 994546566";
//and a a number e.g. 69.
//You need to tell if it is in the input, e.g. 69=>true.
//strlen is O(n), don't use C style string for O(log n), suppose
//the string is friendly without lots of blank.
void GetWordPos(const char *mid, const char *left, const char *right, const
char **pstart, const char **pend){
while (isspace(*mid))
++mid;
*pstart = mid;
while (*pstart >= left && !isspace(**pstart))
... 阅读全帖
Z*****Z
发帖数: 723
20
来自主题: JobHunting版 - 真心问一道题
二爷,看不太懂 :(
写了两个testcase您看看?
public class SearchSequence {
static String min(String str, String word) {
int n = str.length();
int m = word.length();
int[][] dp = new int[n + 1][m + 1];
for (int i = 0; i <= n; i++)
dp[i][m] = 0;
for (int j = 0; j < m; j++)
dp[n][j] = n + 1;
for (int i = n - 1; i >= 0; i--)
for (int j = m - 1... 阅读全帖
B*******1
发帖数: 2454
21
来自主题: JobHunting版 - 被thank you的fb电面面经
你的code的确牛,学习了。
但是我肯定写不出来,改了一下思路,在string前面pack了一个10,再计算,绕过很多
一开始的初始条件
int decodeString(const string &s)
{
if (s.size() == 0) return 0;
string str2 = "10" + s;
const char *str = str2.c_str();
int a = 1, b = 1, c;
str += 2;
while (*str) {
c = 0;
if (*(str-1) == '1' || (*(str-1) == '2' && *str <= '6'))
c += a;
if (*str != '0')
c += b;
a = b;
b = c;
str++;
}
return c;
}
a*******y
发帖数: 1040
22
来自主题: JobHunting版 - HashSet是不是不靠谱?
这个recursion吧,随便写了下,可能有bug
void GenerateParenthesis(int left,int right, int level, string str, vector<
string> &result)
{
if(left ==0 && right ==0)
{
result.push_back(str)
return;
}
if (left > 0)
{
str[level] = ')';
GenerateParenthesis(left -1, right + 1,level+1, str, result);
}
if (right > 0)
{
str[level] = '(';
GenerateParenthesis(left, right -1,level+1, str, result);
}
return;
}
call this function with
string str(2*n,'\0');
vector阅读全帖
c******t
发帖数: 391
23
来自主题: JobHunting版 - 刚面完ebay,说打算招300个
判断回文那题,照着思路写了一个,不知道对不对,请指点:
public static boolean checkPalindrome(String str){
str = str.toLowerCase();
int i = 0;
int j = str.length()-1;
while(i while(!isValid(str.charAt(i)))
i++;
while(!isValid(str.charAt(j)))
j--;
if(str.charAt(i)!=str.charAt(j))
return false;
i++;
j--;
}
return true;
}

public static boolean isValid(char ch){
if((ch>='0'&&ch<='9')||(ch>='a'&&ch<='z'))
retu... 阅读全帖
a********y
发帖数: 1262
24
来自主题: JobHunting版 - 请教leetcode上的count and say
private static java.util.Hashtable cache = new java.util.
Hashtable();
public String countAndSay(int n)
{
// Start typing your Java solution below
// DO NOT write main() function
Object result = cache.get(new Integer(n));
if(result != null)
{
return (String)result;
}
if(n == 1)
{
cache.put(new Integer(1), "1");
return "1";
}
e... 阅读全帖
w****x
发帖数: 2483
25
来自主题: JobHunting版 - 几道F家面试题
//serialize, deserialize vector
int serialize(vector& vec, char* str)
{
if (str == NULL)
return 0;
char* pWriter = str;
*((int*)pWriter) = vec.size();
pWriter += sizeof(int);
for (int i = 0; i < vec.size(); i++)
{
strcpy(pWriter, vec[i].c_str());
pWriter += 1 + strlen(pWriter);
}
return pWriter - str;
}
void deserialize(char* str, vector& vec)
{
if (NULL == str)
return;
int nSize = *((int*)str);
c... 阅读全帖
s********u
发帖数: 1109
26
来自主题: JobHunting版 - Google第二轮电面
各种不顺,早上apple来了拒信,下午google面的也不好,阿森纳还输球。。
可能还是沟通能力太差了,应该是很简单的题目,就是不知道他想说什么。
我发觉面试相比leetcode一大难度就是有时候面试官会说的比较vague,要靠自己问。
。要是他每次都直接把题目书写出来,倒是方便多了。。
就是实现一个strchr,只不过第二个参数不是字符,而是字符串,返回第一次出现的指
针。
/*
Find the first occurrence in str of _any_ character in set. Both are NULL
terminated ASCII C-strings. This is like strchr, except that the second
parameter functions as a set, rather than a single character.
str set returns
qxcdef csz str + 2 == &str[2]
axcdef wya str + 0 == &str[0]
axcdef cxa... 阅读全帖
s********u
发帖数: 1109
27
来自主题: JobHunting版 - Google第二轮电面
各种不顺,早上apple来了拒信,下午google面的也不好,阿森纳还输球。。
可能还是沟通能力太差了,应该是很简单的题目,就是不知道他想说什么。
我发觉面试相比leetcode一大难度就是有时候面试官会说的比较vague,要靠自己问。
。要是他每次都直接把题目书写出来,倒是方便多了。。
就是实现一个strchr,只不过第二个参数不是字符,而是字符串,返回第一次出现的指
针。
/*
Find the first occurrence in str of _any_ character in set. Both are NULL
terminated ASCII C-strings. This is like strchr, except that the second
parameter functions as a set, rather than a single character.
str set returns
qxcdef csz str + 2 == &str[2]
axcdef wya str + 0 == &str[0]
axcdef cxa... 阅读全帖
w********s
发帖数: 1570
28
#include "stdafx.h"
#include
#include
#include
#include
typedef std::map> MyMap;
MyMap m;
int repeat2(char* str)
{
for (int i = 0; i < strlen(str); ++i)
{
char c = str[i];
if (m.find(c) == m.end())
{
std::vector v;
v.push_back(i);
m[c] = v;
}
else
{
m[c].push_back(i);
}
}
int* count = new int[strlen(str)];
mems... 阅读全帖
w********s
发帖数: 1570
29
#include "stdafx.h"
#include
#include
#include
#include
typedef std::map> MyMap;
MyMap m;
int repeat2(char* str)
{
for (int i = 0; i < strlen(str); ++i)
{
char c = str[i];
if (m.find(c) == m.end())
{
std::vector v;
v.push_back(i);
m[c] = v;
}
else
{
m[c].push_back(i);
}
}
int* count = new int[strlen(str)];
mems... 阅读全帖
m*********a
发帖数: 3299
30
来自主题: JobHunting版 - G面经
第一题是用递归么?
#include
#include
typedef struct output_string{
char string[20];
struct output_string *next; }output_string;
void stringCopy(char *str_source,char *str_dest,int no_char){
while (no_char--) *str_dest++=*str_source++;
}
void allString(char *str,output_string *output,int char_position){
output_string *tmp;
while ((*str!='?')&(*str!='\0'))
output->string[char_position++]=*str++;
if (*str=='\0') {output->string[char_position]='\0';return;... 阅读全帖
c****d
发帖数: 2418
31
我觉得只能用递归吧
getsubstr(str,k)
{
num = number of distinct charactor in str
p = positions of distinct charactor in str
if num<=k
return str
else
str_1=str(1,p_{k+1}-1)
str_2=str(p_1+1,p_{k+2}-1)
...
str_m=str(p_{num-k-1}+1,end of str)
for all i
substr_i=getsubstr(str_i,k)
return substr_i with max length
}

number

发帖数: 1
32
来自主题: JobHunting版 - 放c code求老师傅指教
update:
谢谢板上各位老师傅,现在我知道是我的问题了,“without using a second string
”我没有理解好,感谢大家赐教,我继续努力!
刚刚解决身份问题,男,找工作和leetcode都有一段时间了,最近碰到这家公司的一个
面试
http://stackoverflow.com/jobs/115265/software-engineer-networking-schweitzer-engineering?searchTerm=SEL&offset=3&sort=s
问的问题和glassdoor一样,所以我也准备了一下那个unions的答案和例子,以前没用
这个:
Interview Questions
1) What is in the software requirements?
2) What is mutex and semaphore?
3) When to use unions?
4) What are the pros and cons of using assembly in embedded systems?
5) Programming t... 阅读全帖
p**o
发帖数: 3409
33
来自主题: Programming版 - Python问题请教

def parse( s ) :

result = ''
lst = [ eval(i) for i in s[1:-1].split(', ') ]
head, p0 = lst[0], lst[1]
diff0 = p0 - head
flag = True
num_consecutives = 2

for p in lst[2:] :
if not flag :
flag = True
diff0 = p - p0
p0 = p
continue
diff = p - p0
if flag and diff0 <> diff :
if 2 == num_consecutives :
ss = str(head)
head = p0
diff0 = ... 阅读全帖
p**o
发帖数: 3409
34
来自主题: Programming版 - Python问题请教

def parse( s ) :

result = ''
lst = [ eval(i) for i in s[1:-1].split(', ') ]
head, p0 = lst[0], lst[1]
diff0 = p0 - head
flag = True
num_consecutives = 2

for p in lst[2:] :
if not flag :
flag = True
diff0 = p - p0
p0 = p
continue
diff = p - p0
if flag and diff0 <> diff :
if 2 == num_consecutives :
ss = str(head)
head = p0
diff0 = ... 阅读全帖
g*****1
发帖数: 998
35
来自主题: Programming版 - 请教一道c/c++题
char *m()
{
char str[50];
strcpy(str,"how are you");
return str;
}
int main()
{
char s[50];
strcpy(s,m());
printf("%s",s);
//cin.get();
return 0;
}
为什么结果可以正确输出呢?我知道return by pointer可以make copy,可是return之
后storage不是free了吗?
另外,为什么下面这个就只能由一部分正确输出?
char *m()
{
char str[20];
strcpy(str,"how are you");
return str;
}
int main()
{

printf("%s",m());
//cin.get();
return 0;
}
然后上面char str[20];改成比如char str[50],输出就完全是乱得了
d****n
发帖数: 1637
36
来自主题: Programming版 - 请教一道c/c++题
this makes the array safe.
char *m()
{
Static char str[50];
strcpy(str,"how are you");
return str;
}
或者这样 thread safe
char * m(){
char *ret=(char *)malloc(sizeof(char)*20);
strcpy(str, "I am good");
return str;
}
main(){
char * str=m();

printf("%s\n",str);
free(str);
}
p*********t
发帖数: 2690
37
来自主题: Programming版 - 请教一道c/c++题
2网友的意见不同,哪个是对的?
newpolice -- function char *m() {} is valid
Xentar -- it's undefined.

char *m()
{
char str[50];
strcpy(str,"how are you");
return str;
}
int main()
{
char s[50];
strcpy(s,m());
printf("%s",s);
//cin.get();
return 0;
}
为什么结果可以正确输出呢?我知道return by pointer可以make copy,可是return之
后storage不是free了吗?
另外,为什么下面这个就只能由一部分正确输出?
char *m()
{
char str[20];
strcpy(str,"how are you");
return str;
}
int main()
{

printf("%s",m());
//cin.get();
return 0;
}
然后上面char str[20];改成比如cha... 阅读全帖
h**l
发帖数: 168
38
来自主题: Programming版 - function call?
The following code with function call can shift a string but the code
without function call can not. What might be the problem? Thanks!
_______________________________________________________
void shift(char a[])
{
int i=0;
while(a[i]) a[i] = a[++i];
}
int main()
{
char str[]= "afdd";
shift(str);
cout< return 0;
}
_____________________________________________________________
int main()
{
char str[]= "afdd";
int i=0;
while(str[i]) str[i] ... 阅读全帖
p*********t
发帖数: 2690
39
fun1()在返回一个局部变量的地址,所以输出的是這個地址的值,因为fun1()的局部变
量在函数结束时消失,那个地址可能又被分配了新的值,所以是乱码。
要想输出abc,可以在fun1()的str设为static,这样即使fun1()函数结束,str[]还是在
内存存在。
char *fun1() {
static char str[]="ABC";
return (str);
}

有下面这段code, 为什么fun1()输出乱码, 而fun2()输出正确: ABC.
====== code ============
#include
int main() {
char *fun1(), *fun2();
printf("%s\n%s\n", fun1(), fun2());
return 0;
}
char *fun1() {
char str[]="ABC";
return (str);
}
char *fun2() {
char (*str)[]="ABC";
return (str);
... 阅读全帖
d*********o
发帖数: 6388
40
https://www.weibo.com/ttarticle/p/show?id=2309404476341004140787
很难想象,南医大杀人案犯罪嫌疑人麻某在隐匿28年之后于南京落网,只是始于其老家
远房亲戚的一次常规采血。与之形成对比的是,案件刚发生时,南京公安系统曾抽调数
百名精干警力,走访排查人员超过1.5万人,但并没有取得任何突破。这其中,发挥关
键作用的是一个近年来各地投入巨大精力建设的,能够反映家族关系的Y染色体位点信
息的数据库“Y库”。
在事发后媒体对麻某周围人的采访中,很难听到那些“典型”凶手的人物特征——20多
年前麻某就搬到现在的小区,住一栋约60平米,装修普通的房子,喜欢狗,为人和气热
情。邻居去他家里,他总会递烟倒水。人们知道他在一家大型企业任职司机,车上常放
着本圣经。他的工作表现也没什么异常,有正式编制,还被派驻过德国,家里的两条狗
就是从德国带回来的。他和妻子的感情也没听说有什么不好,“有一个女儿,都已经上
大学了。”邻居们说。
正常的认知方式里,很难把这样一个“老实人”同28年前的恶性强奸杀人案联系在一起
。1992年3月20日上完晚自习后,... 阅读全帖
b*****n
发帖数: 2324
41
来自主题: JobHunting版 - 被bloomberg据了
面试迟到了半个小时。。。。我分特。。
在早上上班之前的rushhour中坐了一个多小时的出租车。。
如果做地铁就正好不会迟到了。。可是我不想穿戴整齐去挤地铁。。
在前台领了ID上六楼,就看见几个很酷的黑以人在面前,几步一个。。
其中一个主动打招呼,让我坐着等人来,给人感觉像很热情的黑社会那种。。
然后一个人领我去四楼,直接就开始跟RD的人interview
第一轮两个人,问了我简历上的背景的一些问题
因为我以前不是cs的,但是作的东西跟建模有关,问了很多
让我写一个remove space from string的程序
我写了下面这个:
void removespace(char * str){
if(str == 0 || *str == '\0')
return;
char* str2;
while(*str!='\0' && *str!=' ')
str++;
str2=str;
while(*str2 == ' ')
s
f*********5
发帖数: 576
42
lo=0;hi=0; min=sizeof(str);
while(*str!='\0')
{
if (*str) not in target chars
{ str++;
if !(***)lo++;
hi++;
continue;
}
flag for *str ++;
if( all the flag for target chars >=1)
{ if (hi-lo set lo to next location that target chars happened in the
str;
flag for *str --;
}
hi++;
}
a***9
发帖数: 364
43
来自主题: JobHunting版 - 一道google电面题,估计挂了。。。
呵呵,也写了一个,也是0秒
#include
#include
using namespace std;
int counter= 1;
int end = 0;
void bin21(string str, int start)
{
if(start >= end)
return;
if (start < 0) start = 0;
while((str[start] == '0') && (start < end)) start++;
while((str[start+1] != '0') && (start < end)) start++;
if((str[start +1] == '0') && (start < end))
{
if(str[start] == '1')
{
str[start] = '0';
str[start + 1] = '2';
++counter;
n*****u
发帖数: 5
44
来自主题: JobHunting版 - 问个string combination的问题
写了个不用hashset的方法,不过太长了点。。需要预处理得到unique letters和count
。不知道有没简洁的解法?
void do_perm(vector& letters, vector& count, string& str, int len)
{
if(str.size()==len) {
cout << str << " ";
return;
}
for(int i=0; i if(count[i]) {
str.push_back(letters[i]);
--count[i];
do_perm(letters, count, str, len);
++count[i];
str.erase(str.size()-1);
}
}
}
void do_comb(vector
s*******e
发帖数: 93
45
来自主题: JobHunting版 - 一道有关String的面试题
因为只是词被打乱,空格被删除,没有打乱整个词组,所以我想到的做法是
(应该可以work,但是可能效率不是最高的)
bool equals(string s1, string s2);
string firstNString(string s, int count);
string substringFromIndex(string input, int index);
string sort(string);
(以上几个function应该可以意会,就不implement了)
bool beginsWith(string input, string word)
{
return equals(sort( firstNString(input,word.length) ) , sort(word) );
}
struct result
{
string str;
bool ok;
}
typedef struct result Result;
Result function(string input, string[] words)
{
found=false;... 阅读全帖
V*****i
发帖数: 92
46
来自主题: JobHunting版 - 问两道google题
There is no need to pass Dictionary and lookup table, use global variable or
use class. My solution as follows:
#include
#include
#include
#include
using namespace std;
// T(n) = \sum_{i=1}^{n-1} (T(i) * H(i+1))
const int MAXSIZE = 100;
class find_str {
private:
set dict;
int lookup_table[MAXSIZE];
public:
find_str(set &d) {
dict = d;
for (int i=0; i ... 阅读全帖
l*****g
发帖数: 685
47
来自主题: JobHunting版 - aababccbc remove abc
用C++写了一个版本:
void RecursivelyRemoveSubString(char *str, const char *sub)
{
if (!str || !sub || *sub == 0 || *str == 0 || strlen(str) < strlen(sub))
return;
char *end = str;
char *cur = str;
int subLen = strlen(sub);
char subEnd = sub[subLen - 1];

while (*cur != 0)
{
*end = *cur;
if (*end == subEnd)
{
char *reCur = end;
int subIndex = subLen - 1;
bool match = true;
bool reCurEnd = false;... 阅读全帖
l*****g
发帖数: 685
48
来自主题: JobHunting版 - MS的 on site面试,求bless
void shiftChars(char * str, size_t len)
{
if (!str || len < 3) return;
char lastChar = *(str + (len - 1));
memmove(str+2, str+1, len - 2);
*(str+1) = lastChar;
shiftChars(str + 2, len-2);
}
w****y
发帖数: 5
49
来自主题: JobHunting版 - 问一道关于reverse a C-string的问题
careercup上面,chapter1, 问题 1.2
看了答案有点疑惑:
1 void reverse(char *str){
2 char *end = str;
3 char tmp;
4 if (str) {
5 while (*end){
6 ++end;
7 }
8 --end;
9 while (str < end){
10 tmp = *str;
11 *str++ = *end;
12 *end-- = tmp;
13 }
14 }
15 }
疑惑在第九行,(str < end) 两个指针比较什么意思?会有什么结果?
谢谢。
r*******t
发帖数: 99
50
来自主题: JobHunting版 - 一道G家店面题
这个题相当于一个Jump Game:一排格子,每一个可以往后面的某些格子里跳,每一跳
的cost是0。同时每一个可以往紧邻的下一个格子跳,每一跳的cost是1。把格子看成
vertex,跳看成edge的话就是一个directed graph的shortest path问题,而且这个图已
经是topologically ordered,只用从前往后scan一遍所有vertices,同时update当前
vertex前方与之相连的vertices就可以了。
每一个vertex有哪些outgoing的edges可以查用anagram索引过的dictionary来确定。索
引dictionary的时候记下最大词长可以减少look up的次数。
string minSkip(vector& dictionary, string& str) {
multimap ana2word;
size_t maxLength = 0;
for (size_t i = 0; i < dictionary.size(); ++i) {
... 阅读全帖
首页 3 4 5 6 7 末页 (共10页)