由买买提看人间百态

topics

全部话题 - 话题: str
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)
d*********g
发帖数: 154
1
来自主题: JobHunting版 - 搞了小半个月,leetcode还有20题

我写的这个common prefix 有时候大测试会超时,有时候能过~
public String longestCommonPrefix(String[] strs)
{
String result = "";
if(strs.length == 0) return result;

int smallestLength = Integer.MAX_VALUE;
for(String str : strs)
{
if(str.isEmpty()) return result;
smallestLength = Math.min(smallestLength, str.length());
}

for(int i = 0; i < smallestLength; ++i)
{
if(!isCommonLetter(strs, i)) return result;
result += strs[0].charAt(i);
}
re... 阅读全帖
w****x
发帖数: 2483
2

//leetcode OJ --> get decode ways
int GetDecodeWays(const char* str)
{
assert(str);
int nLen = strlen(str);
if (nLen <= 0) return 0;
int a = 1;// 1 not 0
int b = (str[0] >= '1' && str[0] <= '9') ? 1 : 0;
for (int i = 1; i < nLen; i++)
{
int c = 0;
if ((str[i-1] == '1' && str[i] >= '0' && str[i] <= '9')
|| (str[i-1] == '2' && str[i] >= '0' && str[i] <= '6'))
c += a;
if (str[i] >= '1' && str[i] <= '9')
c += b;... 阅读全帖
x****8
发帖数: 127
3
来自主题: JobHunting版 - MS onsite面经
stack?
public static void main(String[] args) {

XmlParser p = new XmlParser("ABDC");
String s;
Stack> stk = new Stack>();
TreeNode root = null;// = new TreeNode();
while((s = p.getNextTag()) != null){
if(p.isStartTag()){
String str = p.getNextTag();//assert is string tag
TreeNode node = new TreeNode(str);
... 阅读全帖
a*****y
发帖数: 22
4
来自主题: JobHunting版 - Google onsite 题目求助
int FindLongsetTwoLetterSubstr(const std::string& str) {
int max_len = 0;
int curr_len = 0;
int n = str.size();
if (n == 0) {
return 0;
}
char letters[2];
letters[0] = str[0];
int i = 0;
int last_pos = 0;
for (; i < n; ++i) {
if (i != 0 && str[i] != str[i - 1]) {
letters[1] = str[i];
last_pos = i;
break;
}
}
int org_pos = 0;
for (; i < n; ++i) {
if (str[i] != str[i - 1]) {
if (str[i] != letters[0] && str[i] != letters[1]) {
... 阅读全帖
a*****y
发帖数: 22
5
来自主题: JobHunting版 - Google onsite 题目求助
int FindLongsetTwoLetterSubstr(const std::string& str) {
int max_len = 0;
int curr_len = 0;
int n = str.size();
if (n == 0) {
return 0;
}
char letters[2];
letters[0] = str[0];
int i = 0;
int last_pos = 0;
for (; i < n; ++i) {
if (i != 0 && str[i] != str[i - 1]) {
letters[1] = str[i];
last_pos = i;
break;
}
}
int org_pos = 0;
for (; i < n; ++i) {
if (str[i] != str[i - 1]) {
if (str[i] != letters[0] && str[i] != letters[1]) {
... 阅读全帖
j*****8
发帖数: 3635
6
来自主题: JobHunting版 - 讨论下lc最新的那道hard题吧
题目如下:
Given a string that contains only digits 0-9 and a target value, return all
possibilities to add binary operators (not unary) +, -, or * between the
digits so they evaluate to the target value.
给的几个例子:
"123", 6 -> ["1+2+3", "1*2*3"]
"232", 8 -> ["2*3+2", "2+3*2"]
"105", 5 -> ["1*0+5","10-5"]
"00", 0 -> ["0+0", "0-0", "0*0"]
"3456237490", 9191 -> []
下面是我的java code,有个test case一直超时,求大牛指点优化。我的思路很简单,
先生成所有可能的计算式,然后对每个计算式求值与target比较。
public List addOperators(String num, int target) {
... 阅读全帖
i**********e
发帖数: 1145
7
来自主题: JobHunting版 - 这题谁知道答案?
这题蛮有意思的,我刚写完。
其实 idea 挺容易明白,我说一次给你听就明白了,但是没图解释起来比较费劲。这题
最复杂的地方其实就是选择怎么把数据结构结合起来。
一开始我以为要用 dp,其实 greedy 就可以了。
总复杂度是 O(N lg M),N 为 str 的长度,M 为 pattern 的长度。
主要原因有个 lg M 是因为 STL map 里的 find() 函数复杂度为 O(lg M).
我用的是 map + queue + hashtable (有点吓人呵呵,可能我想太复杂了)。
我暂时还没想到怎么提升到 O(N),应该是利用一个更好的数据结构吧。如果有高人知
道怎么提升到 O(N),请指点一下吧~
这是我做的 test cases:
第一行是 string 和 pattern,
第二行是函数 return 的 start and end position,然后是 shortest substring。
cabeca cae
3 5 eca
cfabeca cae
4 6 eca
cabefgecdaecf cae
9 11 aec
cabwefgewcw... 阅读全帖
g**********y
发帖数: 14569
8
来自主题: JobHunting版 - 问个google面试题
写了个Java版的:
public boolean matches(String pattern, String str) {
int i = 0;
while (i 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-2).equals(str.substring(0, i-2)) &&
(equals(c, str, i-1) && matches(pattern.substring(i+1),
str.substring... 阅读全帖
p****e
发帖数: 37
9
来自主题: JobHunting版 - 两道F电面题
贴个楼主事后写的:
bool _re_match(const char *str, const char *pattern, char prev_char) {
// 如果str匹配完,检查pattern是否匹配完,或者还剩一个"*"
if (*str == NULL)
return (*pattern == NULL || (*pattern == '*' && *(pattern+1) == NULL
)) ? true : false;
if (*pattern != '*')
{
// 如果当前pattern char不是'*', 试图匹配当前的str char, 然后
继续。
if (*pattern == '.' || *pattern == *str)
{
if (_re_match(str+1, pattern+1, *pattern))
return true;
... 阅读全帖
p****e
发帖数: 37
10
来自主题: JobHunting版 - 两道F电面题
贴个楼主事后写的:
bool _re_match(const char *str, const char *pattern, char prev_char) {
// 如果str匹配完,检查pattern是否匹配完,或者还剩一个"*"
if (*str == NULL)
return (*pattern == NULL || (*pattern == '*' && *(pattern+1) == NULL
)) ? true : false;
if (*pattern != '*')
{
// 如果当前pattern char不是'*', 试图匹配当前的str char, 然后
继续。
if (*pattern == '.' || *pattern == *str)
{
if (_re_match(str+1, pattern+1, *pattern))
return true;
... 阅读全帖
w*******s
发帖数: 96
11
再来一个拍拍:
////////////////////////////////////////////////////////////////////////////
////////
// Problem 1.1:
// Analysis and points:
// 1. strig operation(scan)
// 2. How to determine whether it's duplicate string?
// Method 1: using one hashtable, if it's already in
hashtable,
// it's duplicate, otherwise add into hashtable.
Complexity O(n)
// Method 2: for each characer, check whether it's duplicated
// ... 阅读全帖
r****k
发帖数: 21
12
来自主题: JobHunting版 - 贡献一道G家的面试题
void deleteADoubleB(char *str, int length)
{
if (str == NULL || length < 0) return;

int newLen = 0;
int bCount = 0;
for (int i = 0; i < str[i] !='\0'; i++)
{
if (str[i] != 'A')
{
str[newLen++] = str[i];
}
if (str[i] == 'B')
{
bCount++;
}
}
if (newLen + bCount > length) return;
int i = newLen - 1;
newLen += bCount;
str[newLen--] = '\0';
while (i>0)
{
str[newLen--] = ... 阅读全帖
f**********t
发帖数: 1001
13
来自主题: JobHunting版 - 问一个memory allocate/release的问题
I have this string s1 = "My name is X Y Z" and I want to reverse the order
of the words so that s1 = "Z Y X is name My".
我写出了算法,结果正确,但是最后一步memory release时出错:
int ReverseWords (char *str) {
if (!str || str == "")
return 0;
char *newstr = new char[strlen(str)];
int i = strlen(str) - 1;
int start, end, k = 0;
while (i >= 0) {
start = end = i;
while (start >= 0 && str[start] != ' ')
--start;
for (int j = start+1; j <= end; ++j)
... 阅读全帖
p*****2
发帖数: 21240
14
来自主题: JobHunting版 - 老题重提:反转字符串

跟我的java差不多,我也写了一个,凑够3题。
static void reverse(char[] str, int i, int j)
{
while(i {
char tmp=str[i];
str[i++]=str[j];
str[j--]=tmp;
}
}
static void reverseStr(char[] str)
{
reverse(str,0,str.length-1);
int start=-1;
int i=0;
while(i {
if(str[i]==' ')
{
if(start>=0)
{
reverse(str, start, i-... 阅读全帖
h*******e
发帖数: 1377
15
来自主题: JobHunting版 - 老题重提:反转字符串
void reverseWord(string & str)
{
reverse(str.begin(), str.end());
for(int i = 1, pre = 0; i<= str.size();++i)
if((i == str.size() || isspace(str[i])) && !isspace(str[i-1]))
reverse(str.begin() + pre, str.begin() + i);
else if((i == str.size() || !isspace(str[i])) && isspace(str[i-1]))
pre = i;
}
经典题哦我也写一个,大牛面前献丑了:)
l*********8
发帖数: 4642
16
double readNumber(const char * &str) {
double num;
sscanf(str, "%lf", &num);
for (++str; isdigit(*str) || *str == '.'; ++str)
;
return num;
}
double calculate(const char * str) {
if (*str == '\0') return 0.0;
double result = 1.0;
char op = '*';
while (op == '*' || op == '/') {
if (op == '*')
result *= readNumber(str);
else
result /= readNumber(str);
op = *str++;
}
return result + calc... 阅读全帖
l*********8
发帖数: 4642
17
double readNumber(const char * &str) {
double num;
sscanf(str, "%lf", &num);
for (++str; isdigit(*str) || *str == '.'; ++str)
;
return num;
}
double calculate(const char * str) {
if (*str == '\0') return 0.0;
double result = 1.0;
char op = '*';
while (op == '*' || op == '/') {
if (op == '*')
result *= readNumber(str);
else
result /= readNumber(str);
op = *str++;
}
return result + calc... 阅读全帖
l**b
发帖数: 457
18
来自主题: JobHunting版 - A家面试题
我当时和你一样,也讨论了100!的方法,说不行,太慢了。还是从string那里入手比
较好。
这个是我当时写的。DP那个方法刚刚写的,实在是很弱,所以如果错了,请轻拍。其他
的基本应该和面试的时候一样。反正写完他就让我把原来for loop是用string的length
做end point的,改成了用symbol最长的length。然后就说没问题了。
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Set;
public class SymbolWord {
// Here is the max length of any symbol
public static final int MAX_SYMBOL_LENGTH = 2;
public String findLongestSymbolWord(List dict, Set
s... 阅读全帖
g***j
发帖数: 1275
19
Given an array of strings, return all groups of strings that are anagrams.
Note: All inputs will be in lower-case.
上面大小测试集都过了,但是总感觉有问题,至少感觉很臃肿,请问我写的这个代码哪
可以改进一下?
int getHashcode(string s) {

int code = 2166136261U;

sort(s.begin(), s.end());

for(int i = 0 ; i < s.length(); i++) {
code = code ^ (s[i]);
code = code * 16777619;
}

return code;
}
class Solution {
public:
vector anagrams(vector &strs) {
// Start typing your ... 阅读全帖
g***j
发帖数: 1275
20
来自主题: JobHunting版 - 问一个atoi overflow的问题
为啥这个代码大小集合都可以过呢? 明明有result*10啊
class Solution {
public:
int atoi(const char *str) {
long long result(0);
bool sign(true);
for(;*str && *str==' ';++str);
if(*str=='-'){
sign=false;
++str;
}
else if(*str=='+') ++str;
while(*str){
if(isdigit(*str)){
result=result*10+*str-'0';
if(sign&&result>INT_MAX) return INT_MAX;
else if(!sign&&-result阅读全帖
h****y
发帖数: 137
21
来自主题: JobHunting版 - T家电面面经并且不解为何被秒拒
leetcode原题, permutation II和permutation sequence, 就是把int换成了char, 45
分钟的面试老中面试官大哥迟到5分钟, 却要按时结束, 加上闲扯几句, 这两题一共就
32分钟时间, 我自己感觉除了一点小typo之外没有问题啊, 那几个typo还是因为第二题
完全没时间检查了, 有他迟到的5分钟肯定能检查出来. 6个小时后就收到拒信, 而且我
用的C++, 感觉面试官对C++一点都不熟, 基本不说话, 我说好了后他也不review, 不作
评价,第二题还冒了一句std::set的元素是无序的, 你这样遍历得到的结果是随机的,
还浪费我时间跟他解释, 我汗...
下面贴上我的代码, 想请大家评评, 真心不懂为啥被拒, 能不能跟recruiter complain
一下?
1. input : string
output : print all the permutation of the input
there are duplicates in the input, avoid print out the same string in ... 阅读全帖
s********x
发帖数: 914
22
来自主题: JobHunting版 - 问一下OJ的Anagrams那道题
谢谢!
这个思路本来也有想到,感觉space开销很多。现在细想一下,确实不用inner loop的
linear search,应该会快很多。
已经过了OJ
class AnagramString {
boolean visited;
String str;

AnagramString(String s) {
this.str = s;
}

static String getKey(String s) {
char[] a = s.toCharArray();
Arrays.sort(a);
return new String(a);
}
}
public class Solution {
public ArrayList anagrams(String[] strs) {
Map> map = new HashMap , Has... 阅读全帖
p********r
发帖数: 66
23
这是一道DP的算法题
对长度为n的字符串str, 求maxp(str)
1. 如果str[0] == str[n-1], maxp(str) = 2+maxp(str[1 .. n-2])
2. 如果str[0] != str[n-1], maxp(str) = max(maxp(str[0 .. n-2]), maxp(str[1 .
. n-1]))
3. 循环递归 1, 2
用递归的话算法复杂度是O(2^n)
但是中间有很多运算是重复的,我们定义一个二维数组记录子字符串str[i .. j]的
maxp
算法复杂度变成O(n^2)
i*********7
发帖数: 348
24
这一题大部分人应该都知道是用BFS解。
我只是想自己试验一下DFS的解。
DFS解如果要避免TLE,重点在于需要截枝和截枝后的答案更新。
这就是我自己新建一个class和对应的HashMap去记录进行截枝。
我的观念是这个样子的,在遇到重复出现过的节点单词的时候,首先考虑的是这个节点
往下遍历过后是否出现过解,如果没有的话只有两种情况:1,这个节点往下走是没有
解的。(在不变回去的情况下)2.变回去了。 这种情况下都当做无效访问往上一层走。
如果有的话,就比较该节点之前有解的情况下它所居的递归层数是否比当前重复访问的
时候深,如果否,则不更新,如果是,则根据层数差来修正结果。这相当于把之前遍历
过的结果默认放在这一层下面了。
好吧,问题来了。。这个解只能过leetcode 80%的cases。在一个字典很大的case中比
Expected answer多了1. 有没有人能告诉我听我的代码或者逻辑问题出在哪儿了?=。=
class DataSet{
int level, res;
DataSet(){
level = 0;
... 阅读全帖
l****u
发帖数: 1764
25
来自主题: JobHunting版 - 放c code求老师傅指教
如果是我就会这么写:
void translate(char *str)
{
// edge case
if (str == NULL || strlen(str) < 2)
return;
// replace 'AB' to 'C0'
int len = strlen(str);
for (int i = 0; i if (str[i] == 'A' && str[i+1] == 'B') {
str[i] = 'C';
str[i+1] = 0;
}
}
// remove all '0'
int i = 0, j = 0;
while (j < len) {
if (str[j] == ... 阅读全帖
f****u
发帖数: 12
26
来自主题: Java版 - java String
class Str {
String str;
}
class HelloWorldApp {
public static void main(String[] args) {
Str s=new Str();
Str t=new Str();
s.str="1";
t.str="2";
System.out.println(t.str);
t=s;
System.out.println(t.str);
s.str="3";
System.out.println(t.str);
}
}
The result is:
2
1
3
If u use "=" to assiagn class2 to class1, both 1 and 2 contain the same
reference--point to the same object. This phenomenon is called "aliasing
l*******1
发帖数: 16217
27
古埃及法老Y-DNA测试: 从“R1b”图坦卡蒙到“E1b1a”拉姆西斯三世
从炎黄文明体系出发,推测古埃及王室为Q系,底层民众有黑种人E系和白种人闪族J系
等。
这种推测受到的主要挑战是中东DNA测试Q系详细数据的不完整,甚至是保密状态或者阴
谋论状态。这种保密性体现在:
相关北非Q系数据不入有关基因测试数据库,虽然已知北非有不少Q,今天埃及也有大约
2-3%的Q
2001年初开始或在中东和中美洲发现Q1a1,当然包括埃及地域,但是后来这一发现却被
有关方面故意掩盖了。相关论文见:Sengupta et al. 2006, Spencer-Wells et al.
2001, Underhill etal. 2000等论文显示:Q1a1分布在从中东到亚洲的区域。(
Distributed throughout the Middle East andAsia, including Chinese, Korean,
Dungan,and Hazara populations)
埃及政府已经声明古埃及法老基因测试只能有古埃及政府控制执行。且拒绝公布任何古
埃及法老的基因信息。
稍微有点正... 阅读全帖
c*********n
发帖数: 1057
28
来自主题: JobHunting版 - amazon onsite 面经
2的话加个判断就好了吧
permute(char *str,int start)
int i;
if(start==strlen(str)-1)
printf("%s\n",str);
for(i=start;i if(start != i && str[i]==str[start])
continue;//eliminate duplicates
swap(str[i],str[start]);
permute(str,start+1);
swap(str[i],str[start]);
}
}
k*k
发帖数: 49
29
来自主题: JobHunting版 - amazon onsite 面经
#include
void swap(char* arr, int f, int t){
char tmp = arr[f];
arr[f] = arr[t];
arr[t] = tmp;
}
void permute(char *str,int start){
int i;
if(start==strlen(str)-1)
printf("%s\n",str);

for(i=start;i if(start != i && str[i]==str[start])
continue;//eliminate duplicates
swap(str, i, start);
permute(str,start+1);
swap(str, i, start);
}
}
int main(){
char str[] = "1233";
permute(str, 0);
}
$ ./pm | wc -l
22
but sh
i******s
发帖数: 301
30
来自主题: JobHunting版 - 问两道google题
你的解法应该是对的,基于这个写了如下C++代码
/*
* Author: Shengzhe Yao
* Date: 08 Nov 2010
*/
#include
#include
#include
#include
using namespace std;
// T(n) = \sum_{i=1}^{n-1} (T(i) * H(i+1))
int findAllStr(const set &dict, char *str,
int end, int *lookup_table) {
if (lookup_table[end] > 0)
return lookup_table[end];
int total = 0;
for (int i=1; i < end; ++i) {
char *substr = (str+i+1);

if (dict.find(substr) != dict.end()) {
char tmp =... 阅读全帖
O******i
发帖数: 269
31
来自主题: JobHunting版 - atoi很不好写,头都大了...
写了一个,要考虑的情况真多...
假定是16位整数,范围是-32768到+32767
bool my_atoi(const char* str, int16& num)
{
if (str == NULL || str[0] == '\0')
return false;
int i = 0;
bool IsNeg = (str[0] == '-')? true : false;
if (str[0] == '+' || str[0] == '-')
{
if (str[1] == '\0')
return false;

i = 1;
}
num = 0;
const int num_limit = 3276;
const int digit_limit = (IsNeg)? 8 : 7;
int digit = 0;
bool max_int_reached = false;
for (; str[... 阅读全帖
g*********8
发帖数: 64
32
来自主题: JobHunting版 - Exposed上一道string permutation的题
跟风写一个C++版本的
void string_permute_noduplicate(string str, int d){
if(d==str.length()){
cout< return;
}
else{
char lastswap=' ';
for(unsigned int i=d;i if(str[i]==lastswap) continue;
else{
lastswap=str[i];
swap(str[i],str[d]);
string_permute_noduplicate(str,d+1);
swap(str[i],str[d]);
}
}
}
}
v****c
发帖数: 29
33
int f(const std::string& str, int start, int& end)
{
if(start < str.size() && str[start] == '0')
{
end = start;
return 0;
}
else if(start < str.size() && str[start] == '(')
{
int t; // position of last letter in the left subtree
int left = f(str, start + 1, t);
if(left == -1) return -1;
int right = f(str, t + 1, end);
if(right == -1 || ++end == str.size() || str[end] != ')') return -1;
return std::max(left, right... 阅读全帖
E*******0
发帖数: 465
34
来自主题: JobHunting版 - 被thank you的fb电面面经
我也来说说我的DP思路。
用一个表格T(i)表示输入str[i to n]所有可能解码。
//T(n)=1;
if (i==n && str[i]>0) return 1;
//T(n-1)=1 or 2
if (i==n-1 && 0 if (i==n-1 && str[n-1]str[n]>26) return 1;
if (str[i]==1 && str[i-1]>0) || (str[i]==2 && <0str[i-1]<=6)
//0<"str[i]str[i-1]"<=26
T[i]=T[i-1]+T[i-2];
else
T[i]=T[i-1];
n*******w
发帖数: 687
35
来自主题: JobHunting版 - F家面经
1. regex
test过了,要源码的话站内吧。
bool regex(char* str, char* pattern)
if(!str && !pattern) return true;
if(!str || !pattern) retrun false;
if(pattern+1 && *(pattern+1) == '-' && pattern+2) //handle a-z
return *str >= *pattern && *str <= *(pattern+2) && regex(str+1,
pattern+3);
if(pattern+1 && *(pattern+1) == '+')
if(*pattern == '.') //handle .+
bool tmp = false;
char* iter = pattern;
while(iter) //iterater over all possible repeated t... 阅读全帖
w****x
发帖数: 2483
36
class Node {
public:
std::map children;
};
void insert(const char* str, Node* n)
{
if (0 == *str || NULL == pNode)
return;

if (children.find(*str) == children.end())
children[*str] = new Node;

insert(str+1, children[*str]);
}
bool contains(const char* str, Node* n)
{
if (0 == *str) return true;
if (children.find(*str) == end())
return false;
contains(str+1, children[*str]);
}
p*****2
发帖数: 21240
37
def cal(str:String):Int={
val numbers=str.split("[+-/*]").map(_.toInt)
val operators=str.filterNot(_.isDigit)
var result=numbers(0)

for(i<-0 until operators.length) operators(i) match{
case '+' => result+=numbers(i+1)
case '-' => result-=numbers(i+1)
case '*' => result*=numbers(i+1)
case '/' => result/=numbers(i+1)
}
result
}

def solve(str:String):Int={
val plusminus= -... 阅读全帖
p*****2
发帖数: 21240
38
def cal(str:String):Int={
val numbers=str.split("[+-/*]").map(_.toInt)
val operators=str.filterNot(_.isDigit)
var result=numbers(0)

for(i<-0 until operators.length) operators(i) match{
case '+' => result+=numbers(i+1)
case '-' => result-=numbers(i+1)
case '*' => result*=numbers(i+1)
case '/' => result/=numbers(i+1)
}
result
}

def solve(str:String):Int={
val plusminus= -... 阅读全帖
h********m
发帖数: 116
39
来自主题: JobHunting版 - 再问个简单的C问题
简单的string reverse,为啥我会get sigsegv? 我用了下面两种不同的写法,都是这
样:
Program received signal SIGSEGV, Segmentation fault.
都在这一步过不了:
str[i] = str[len-i]
*str = *end;
14 /* Swap the chars */
15 while( i 16 temp = str[i];
17 str[i] = str[len-i];
18 str[len-i] = temp;
19 i++;
20 }
while(str != end){
char tmp = *str;
*str = *end;
*end = tmp;
str++;
end --;
}
f*****2
发帖数: 141
40
麻烦大家帮我看看哪有错误,为什么老师运行时候有错误?非常感谢!
void remove_duplicate_value(char* str)
{
int i, j, len;
char *newStr;
len = strlen(str);
for (i = 1; i < len; i++)
{
for (j = i-1; j >= 0; j--)
{
if (str[i] == str[j])
{
int k = i+1;
while (str[i] == str[k] && k <= len)
{
k++;
}
if (str[i] != str[k])
str[i] = str[k];
else... 阅读全帖
s********u
发帖数: 1109
41
来自主题: JobHunting版 - cc1501.3题,请帮忙测试下代码
今天bbs有问题,刚刚写了一堆没有了,先贴代码:
void remove(char *str){
int left = 0, right = 0;
bool unique = true;
while(str[right]!= '\0'){
//你也可以用一个 bool unique(char *str,int right)函数来判断,不用这个
unique变量
unique = true;
for(int i = 0; i < right; i++){
if( str[i] == str[right] ){
duplicate = false;
break;
}
}
if(unique){
str[left++] = str[right++];
}else{
right++;
}
}
str[left] = '\0';
}
int main(){
char str[9] = "abcabxyx";
remove(str);
cout< }
l****r
发帖数: 118
42
来自主题: JobHunting版 - 杯具!越改越差
Anagrams 那道题,谢谢大家帮忙review。
public ArrayList anagrams(String[] strs) {

ArrayList res = new ArrayList();
boolean[] added = new boolean[strs.length];
for(int i = 0; i< added.length; i++)
added[i] = false;

if (strs == null)
return null;
if (strs.length <=1)
return res;
Hashtable map = new Hashtable();

for(int i = 0; ... 阅读全帖
m***2
发帖数: 595
43
贴块砖,感觉是我见到的最容易理解好记的版本了
而且能够过最新的test (好多解法之前能过,最新的容易Memory超,感觉leetcode的
判断更严格了)
public class Solution {
public List> findLadders(String start, String end, Set<
String> dict) {
List> result = new ArrayList>();
if (start == null || end == null || start.length() != end.length() |
| dict.size() == 0) {
return result;
}

HashMap> visited = new HashMap HashSet>();
... 阅读全帖
p*y
发帖数: 108
44
来自主题: JobHunting版 - 最新L家面经
店面是两个中国人,一开始知道是国人还比较欣喜. 结果证明完全不是这么回事,反而感
觉很严格,最终挂了. 请大家分析下为啥挂? 难道第二题没有按面试官心中理想的答案
在面试时给他写出来? 以后看来一定要注意时间.
1. two sum
一开始根据题目理解以为是排好序的数组, 于是从两头开始找:
boolean twoSum(int[] nums, int sum){
if(nums==null || nums.length<2)
return false;
int low = 0, high = nums.length-1;
while(low if( (nums[low]+nums[high]) == sum ){
return true;
}else if((nums[low]+nums[high]) < sum){
low++;
}else{
... 阅读全帖
h**********c
发帖数: 4120
45
来自主题: Programming版 - 把月末周末重合的答案公布一下
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class MonthEndWeekEnd {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
// get the beginning of time, it is the design of modern operating
// system 0 timestamp.
cal.setTimeInMillis(0l);
Date d = cal.getTime();
SimpleDateFormat dateFormatter = new SimpleDateFormat("MM/dd/yyyy
EEE");
String str = dateFormatter.forma... 阅读全帖
h**********c
发帖数: 4120
46
来自主题: Programming版 - 把月末周末重合的答案公布一下
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class MonthEndWeekEnd {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
// get the beginning of time, it is the design of modern operating
// system 0 timestamp.
cal.setTimeInMillis(0l);
Date d = cal.getTime();
SimpleDateFormat dateFormatter = new SimpleDateFormat("MM/dd/yyyy
EEE");
String str = dateFormatter.forma... 阅读全帖
x*****p
发帖数: 1707
47
来自主题: JobHunting版 - 求一道题的解答
Using dynamic programming.
Suppose f(str) is the minimum number of characters to insert into str to
make it symmetric. Then
int f(String str) {
if (str.length()==1 || str.length()==0) return 0;
n = str.length();
if (str[0]==str[n-1]) return f(str.substring(1, n-1));
else return 1 + f(str.substring(1, n));
}
h*****g
发帖数: 944
48
谢谢大家指点,compile有warning, 执行起来segmentation fault
#include
using namespace std;
void reverse (char *str);
int main(){
char * str = "hello";
reverse(str);
cout< }
void reverse(char *str){
char * end = str;
char tmp;
if(str){
while(*end){
++end;
}
--end;
while(str tmp = *str;
*str++=*end;
*end--=tmp;
}//end while
}
}
t*******i
发帖数: 4960
49
来自主题: JobHunting版 - Facebook被拒,写个面经
打的一个草稿,不处理负数
int NextP(int num){
if (num < 0)
throw -1;

char str[11];
itoa(num, str, 10);
if (strlen(str) == 1)
throw -1;
pos = len-1;
while (pos >= 1){
if (str[pos] > str[pos - 1])
break;
pos --;
}
if (pos == 0)
throw -1;
--pos;

int min = findLargerMin(str, pos + 1, len – 1, str[pos]);
swap(str, pos, min);
sort(str, pos + 1, len - 1);
return atoi(str);
}
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)