שלום,
האם מישהוא עבר את המשימה הראשונה ויודע מה המשימה השניה ?
בתודה מראש
לפני 9 שנים
ע"י: 1_אורח_כללי
חלק ראשון - 15-20 דק
Assume most recent language standard are available
ES5, C11, C++11
We expect good performance
If missing more requirements details, just make reasonable assumptions of your own
Solution must be simple and compact
No defensive coding, no comments, no unrequested features
Only one file 10-20 lines of code
Work only inside Google Docs
no external editor/IDE/debugger, no copy-paste to/from such an editor
We must see the flow of how you write the code
you have 5 minutes
5 JS,
C/C++/C#/Python 10 minutes, 15, 20
Implement function verify(text) which verifies whether parentheses within text are
correctly nested
You need to consider three kinds
(), , <>
Examples:
verify("a(b)") -> 1
verify("") -> 1
verify("") -> 0
verify(")") -> 0
verify("><") -> 0
verify("z(<a>)") -> 1
verify("") -> 1
חלק שני - 30 דק
Problem
===========
Simplify the implementation below as much as you can.
Even better if you can also improve performance as part of the simplification!
FYI: This code is over 35 lines and over 300 tokens, but it can be written in
5 lines and in less than 60 tokens.
function func(s, a, b)
{
var match_empty=/^$/ ;
if (s.match(match_empty))
{
return -1;
}
else
{
var i=0;
var aIndex=-1;
var bIndex=-1;
while ((aIndex==-1) && (bIndex==-1) && (i<s.length))
{
if (s.substring(i, i+1) == a)
aIndex=i;
if (s.substring(i, i+1) == b)
bIndex=i;
i++;
}
if (aIndex != -1)
{
if (bIndex == -1)
return aIndex;
else
return Min(aIndex, bIndex);
}
else
{
if (bIndex != -1)
return bIndex;
else
return -1;
}
}
};
חלק 3 - 5 דק
לממש את הפונקציה strcmp case sensitive
אסף התחיל לחפש עבודה כשהוא עדיין מתכנן את החזרה לישראל מחו"ל,
למרות ידע וניסיון רחב, הוא נתקל במחסומים לא הגיוניים כשניסה לחפש עצמאית.
חיפוש עבודה היא משימה, שעדיף לתת למישהו אחר לעשות עבורכם,
במיוחד כשאין לכם את הפניות לעשות את זה לבד,
במיוחד במיוחד כשאתם מודעים לערך שלכם בשוק, אבל לא מרגישים אותו בפועל.
ראיון שני בהולה בסקייפ:
נתנו משימה לממש פונקציונאליות של jquery ב javascript
להלן המשימה:
the task is to implement a tiny subset of jQuery functionality
class selector
html() selector.
//javascript
var $ = .. // write you soultion here
//html
<span class='replaceme'>A</span>
<span class='replaceme'>B</span>
<script>
$('.replaceme').html('Replacement');
</scirpt>
//expected output
ReplacementReplacement
* השחזור נשלח אלינו במייל.
עם המודל של ג'ובהאנט מגיעים לפי 2 ראיונות עבודה ב-1/2 מהזמן!
לבדיקת התאמה שלחו קו"ח
לפני 9 שנים
ע"י: 1_אורח_כללי
פתרון רקורסיבי ללא צורך במכסנית כנראה התכוונו לזה
public static String chechBraket(String s) {
if(s.isEmpty() || s.charAt(0) == ')'){
return s;
}
else if(s.charAt(0) == '('){
String c = chechBraket(s.substring(1));
if(c.isEmpty()){
return s;
}
else if(c.charAt(0) == ')'){
return chechBraket(c.substring(1));
}
else{
return s.substring(1);
}
}
else{
return chechBraket(s.substring(1));
}
}
זה פתרון יפה, אבל תופס רק למקרה של סוגריים מסוג אחד בלבד, עגולים: (). לא הצלחתי לחשוב על דרך להתאים את הפתרון הרקורסיבי לסוגים מרובים של סוגריים.
למי שצריך, זה הפתרון שלי (לא רקורסיבי, אבל כולל את כל סוגי הסוגריים כולל המיוחדים שסוגר פותח הוא כמו זה שסוגר):
import com.sun.org.apache.xpath.internal.operations.Bool;
import java.util.HashMap;
import java.util.Scanner;
import java.util.Stack;
/**
* Created by mor on 17/11/2015.
*/
public class test {
private static Character[] openingBrackets = { '{', '[', '<', '(' };
private static Character[] closingBrackets = { '}', ']', '>', ')' };
private static Character[] specialBrackets = { '|', '^' };
public static boolean checkBrackets(String s) {
HashMap<Character,Character> open2closeBrackets = new HashMap<>();
for(int i=0;i<openingBrackets.length;++i)
open2closeBrackets.put(openingBrackets[i], closingBrackets[i]);
HashMap<Character,Boolean> wasSpecialBracket = new HashMap<>();
for(int i=0;i<specialBrackets.length;++i)
wasSpecialBracket.put(specialBrackets[i], false);
Character top;
Character curCh;
Stack<Character> charStack = new Stack<>();
for(int i=0;i<s.length();++i) {
curCh = s.charAt(i);
if(isOpeningBracket(curCh))
charStack.push(curCh);
else if(isClosingBracket(curCh)) {
if(charStack.isEmpty())
return false;
top = charStack.pop();
if(curCh!=open2closeBrackets.get(top))
return false;
}
else if(isSpecialBracket(curCh)) {
if(!wasSpecialBracket.get(curCh)) {
charStack.push(curCh);
wasSpecialBracket.put(curCh, true);
}
else { // A special bracket of this kind has been pushed
top = charStack.pop();
wasSpecialBracket.put(top, false);
if(curCh!=top)
return false;
}
}
}
// More opening brackets than closing ones
if(!charStack.isEmpty())
return false;
return true;
}
private static boolean isOpeningBracket(Character c) {
for(int j=0;j<openingBrackets.length;++j) {
if(c.equals(openingBrackets[j])) {
return true;
}
}
return false;
}
private static boolean isClosingBracket(Character c) {
for(int j=0;j<closingBrackets.length;++j) {
if(c.equals(closingBrackets[j])) {
return true;
}
}
return false;
}
private static boolean isSpecialBracket(Character c) {
for(int j=0;j<specialBrackets.length;++j) {
if(c.equals(specialBrackets[j])) {
return true;
}
}
return false;
}
public static void main(String[] args) {
System.out.println("Enter a brackets string:");
Scanner scanner = new Scanner(System.in);
String s = scanner.next();
boolean isOK = test.checkBrackets(s);
System.out.println("The string:"+s+ "is:"+isOK);
}
}
לפי כל הבדיקות זה נכון אבל לא יודע אם יקבלו את זה או לא כי עוד לא היה לי הראיון..בהצלחה לי ולכולם
לפני 9 שנים
ע"י: אדם פשוט
שלום,
אשמח לדעת האם מישהו פה עבר את המבחן השלישי? זה שעושים דרך הסקייפ.
יש לי אותו מחר ואשמח לעזרה מה שואלים שם? איזו שאלת תכנות?
זה יעזור לי מאוד.
בתודה מראש!
לפני 10 שנים
ע"י: 1_אורח_כללי
בבקשה אזרה אם ראיון 3 בחברתhola
לפני 10 שנים
ע"י: אדם פשוט
בבקשה אזרה אם ראיון 3 בחברתhola
שלום נועם,
אשמח לדעת בבקשה מה שאלו אותך בראיון השלישי. כי לפי מה שאני מבין הגעת אליו.
זה יעזור לי מאוד.
בתודה מראש!
לפני 10 שנים
ע"י: 1_אורח_כללי
מה דרך לפתרון נכון עבור שאלה ראשונה?
ומה בראיון שני?
לפני 10 שנים
ע"י: 1_אורח_כללי
אז יש מי שהגיע לראיון שני????
לפני 10 שנים
ע"י: 1_אורח_כללי
אני גם אשמח לדעת מה עוברים בראיון השני.
ובבקשה, אם מישהו עומד לעבור את הראיון השני בקרוב אז בבקשה שיכנס לכאן וישתף.. זה יעזור לאלה שיעברו את הראיון אחר כך!
לפני 10 שנים
ע"י: הדר123
היי,
אשמח לדעת מה שואלים בראיון השני לחברת hola? תודה
לפני 10 שנים
ע"י: 1_אורח_כללי
ראיון טלפוני צריך לפתור משהו כתוב הנייל?
לפני 10 שנים
ע"י: 1_אורח_כללי
האם מישהו יודע מה הפתרון למבחן הראשון? ומה המבחן השני?
לפני 10 שנים
ע"י: 1_אורח_כללי
השאלה הייתה: https://www.dropbox.com/s/fyh7x4gls2drt ... 3.jpg?dl=0
זה הפתרון שנתתי (הוא כולל כמה באגים): https://www.dropbox.com/s/ie7h9jgxrolxt ... 7.jpg?dl=0
וקיבלתי הזדמנות לתקן את הקוד כאשר ההערות הן כאלה: https://www.dropbox.com/s/9m51x23k2pu1f ... 2.jpg?dl=0
הקוד הסופי שהגשתי בלי התייחסות להערה השנייה:
bool check(std::string text) {
std::stack <char> help_stack;
size_t index = 0;
while (std::string::npos != (index = text.find_first_of("{}[]()", index))) {
switch(text[index]) {
case '{': help_stack.push('}'); break;
case '(': help_stack.push(')'); break;
case '[': help_stack.push(']'); break;
case '}':
case ')':
case ']':
if (help_stack.empty()) {
return false;
}
if (text[index] != help_stack.top()) {
return false;
}
help_stack.pop();
}
index += 1;
}
if (!help_stack.empty()) {
return false;
}
return true;
}
התשובה הייתה Unfortunately the answer you gave is not the answer we are looking for.
בהצלחה לכולם!
לפני 10 שנים
ע"י: 1_אורח_כללי
ועדיין אף אחד לא ענה, יש מישהו שהגיע לראיון השני ויכול לספר מה היה בו?
לפני 10 שנים
ע"י: 1_אורח_כללי
פתרון רקורסיבי ללא צורך במכסנית כנראה התכוונו לזה
public static String chechBraket(String s) {
if(s.isEmpty() || s.charAt(0) == ')'){
return s;
}
else if(s.charAt(0) == '('){
String c = chechBraket(s.substring(1));
if(c.isEmpty()){
return s;
}
else if(c.charAt(0) == ')'){
return chechBraket(c.substring(1));
}
else{
return s.substring(1);
}
}
else{
return chechBraket(s.substring(1));
}
}
לפני 10 שנים
ע"י: 1_אורח_כללי
אשמח לדעת מה הייתה השאלה הראשונה? תודה.
לפני 10 שנים
ע"י: 1_אורח_כללי
אשמח לדעת גם מה יש בראיון השני.. אם משהו בעולם בכלל מגיע לשם
לפני 10 שנים
ע"י: 1_אורח_כללי
כפי שציינתי לא עברתי את השלב הראשון.
אבל מצטרף לשאלה שלך,אשמח לדעת מה ישאלו אותך כדי לעשות את זה לבד למטרות תרגול.
מתי הראיון שלך?, ובהצלחה.
נ.ב.
אם השלב השני הוא כמו בראשון (און ליין) אז אתה תוכל להעתיק את המטלה מהgoogle docs.
לפני 10 שנים
ע"י: אביגדורצ'יק
מישהו היה בראיון השני?
לפני 10 שנים
ע"י: 1_אורח_כללי
אני גם עשיתי מחסנית אבל טעיתי בבדיקה ולכן הקוד לא עבד ולא עברתי.
אבל אשמח לדעת מה שואלים בראיון השני לצורך תרגול לראיונות הבאים
לפני 10 שנים
ע"י: 1_אורח_כללי
הדרך שתארת היא הדרך לעבוד עם מחסנית במקרה הזה... וכך עשיתי. אגב בג'אווה הקוד נראה הרבה יותר קצר.. ועדיין בחרו שלא להעביר. בכל מקרה שיהיה לך המון בהצלחה. הבנתי שיש להם תנאים טובים!
לפני 10 שנים
ע"י: בחיפוש אחר האתגר הבא
את המבחן על המחסנית עברתי, בקוד ב-C (מועמדת למשרה ב-C), האמת שלא שמרתי את הקוד. אבל באופן עקרוני נראה לי שצריך לדחוף את הסוגר המשלים כשמזהים נגיד ), לדחוף למחסנית (, ואז כשמוציאים מהמחסנית מפשט את הבדיקות ,ישר משווים.
פתרון מהרשת בC++
bool bracketsMatch(std::istream &in) {
//std::map<int> h;
std::stack<char> expectedDelimiters;
int lineNum = 0;
std::string line;
while (std::getline(in, line)) {
lineNum++;
size_t pos = 0;
while (std::string::npos != (pos = line.find_first_of("(){}", pos))) {
int colNum = pos + 1;
switch (line) {
case '(': expectedDelimiters.push(')'); break;
case '{': expectedDelimiters.push('}'); break;
case ''); break;
case ']':
case '}':
case ')':
if (expectedDelimiters.empty()) {
std::cout << "Mismatched " << line
<< " at line " << lineNum << ", col " << colNum
<< std::endl;
return false;
}
if (line != expectedDelimiters.top()) {
std::cout << "Expected " << expectedDelimiters.top()
<< ", found " << line
<< " at line " << lineNum << ", col " << colNum
<< std::endl;
return false;
}
expectedDelimiters.pop();
}
pos = colNum;
}
}
// Should check for a possible input error here, but I didn't bother.
if (!expectedDelimiters.empty()) {
std::cout << "Expected " << expectedDelimiters.top()
<< " at end of file" << std::endl;
return false;
}
return true;
}
לפני 10 שנים
ע"י: 1_אורח_כללי
את המבחן על המחסנית עברתי, בקוד ב-C (מועמדת למשרה ב-C), האמת שלא שמרתי את הקוד. אבל באופן עקרוני נראה לי שצריך לדחוף את הסוגר המשלים כשמזהים נגיד ), לדחוף למחסנית (, ואז כשמוציאים מהמחסנית מפשט את הבדיקות ,ישר משווים.
פתרון מהרשת בC++
bool bracketsMatch(std::istream &in) {
//std::map<int> h;
std::stack<char> expectedDelimiters;
int lineNum = 0;
std::string line;
while (std::getline(in, line)) {
lineNum++;
size_t pos = 0;
while (std::string::npos != (pos = line.find_first_of("(){}", pos))) {
int colNum = pos + 1;
switch (line) {
case '(': expectedDelimiters.push(')'); break;
case '{': expectedDelimiters.push('}'); break;
case ''); break;
case ']':
case '}':
case ')':
if (expectedDelimiters.empty()) {
std::cout << "Mismatched " << line
<< " at line " << lineNum << ", col " << colNum
<< std::endl;
return false;
}
if (line != expectedDelimiters.top()) {
std::cout << "Expected " << expectedDelimiters.top()
<< ", found " << line
<< " at line " << lineNum << ", col " << colNum
<< std::endl;
return false;
}
expectedDelimiters.pop();
}
pos = colNum;
}
}
// Should check for a possible input error here, but I didn't bother.
if (!expectedDelimiters.empty()) {
std::cout << "Expected " << expectedDelimiters.top()
<< " at end of file" << std::endl;
return false;
}
return true;
}
תראה גם כאשר מכניסים את הקוד הנ"ל ל-Editor ומבצעים אינדנטציות , זה בעליל לא קריא , אפשר לכתוב את זה קצר יותר וגם יעיל יותר (יש גרסה ללא מחסנית).
לפני 10 שנים
ע"י: 1_אורח_כללי
ה cto שם חי בסרט. בצעתי את המשימה עם מחסנית בג'אווה.. מתודה ממש פשוטה. והם חזרו אלי יום למחרת וביקשו שאעשה אותה יותר פשוטה. לא ירדתי לסוף דעתו של הבחור.. רק הבנתי שאם הוא פוסל מישהו במבחן טלפוני למרות שהפתרון תקין (בדקתי), אני לא מעוניין לראות את המבחן השני בהצלחה.
נ.ב במידה ותעבור אשמח שתפרסם את התשובה שלך למשימה הראשונה, להבין מה הבחור רצה..
לפני 10 שנים
ע"י: 1_אורח_כללי
חברים חברה כמו Hola זה אנשים שמתותקים מימיציוד ,
הם נתנו איזה מסימה לכתוב בC לפני שנתיים אם פרס 1000$
אנשים אם 20שנות נסיון עשו את עבודה וזה היה לא טוב.
לי אישית אמרו שאני לא עמדתי בסטנדרט שלהם , מדובר בסגירת סוגר
באותה שורה או שורה מתחת , על זה לדריהם אני נפסלתי .
לא מבין את השיקולים של אנשים פשוט ביזיון וכול מישיכול חייב להתנתק
מיחברות היסוג זה .
ובככל כל מישעושה מבחנים בצורה כול שהיא במקום ראיון עבודה המקובל,
פשוט איינו רציני , אני רואה זות כבר 107שנה שאני בתחום וכול אות אנשים יהמינו
בחלומות חברות מגייסות ימשיכו לעשות צחוק מימועמדים.
שלום,
האם מישהוא עבר את המשימה הראשונה ויודע מה המשימה השניה ?
בתודה מראש