it-swarm.dev

En sevdiğiniz beyaz tahta röportaj probleminiz nedir?

Başlığın dediği gibi, en sevdiğiniz beyaz tahta röportaj probleminiz nedir ve sizin için neden etkili olduğu kanıtlanmıştır?

Junior, senior, Java, C, Javascript, PHP, SQL, sözde kod vb.

52
Nicole

Adaydan günlük işimle gerçekten karşılaştığım bir soruna çözüm tasarlamasını istiyorum. Bunu yaparak, ben ve aday arasında bir diyalog oluşturmaya çalışıyorum. Yaptığı tasarım hakkında daha önce hiç problem düşünmemiş gibi konuşmaya çalışıyorum.

Değerlendirmeye çalıştığım şey, birbirimizi anlayıp anlayamayacağımız ve teknik bir sorun hakkında kafa karışıklığı olmadan konuşup konuşamayacağımız.

Somut örnek

(Java masaüstü geliştiricisi için)

Bir web tarayıcısının gezinme geçmişini işlemek için bir API tasarlayın (önceki sayfa, sonraki sayfa, önceki 10 sayfayı listeleyin) ve bu uygulamanın birçok bölümünde yeniden kullanılabilir (burada veriyorum uygulamamızda somut örnekler). Ardından bir uygulama hazırlayın.

Bunu beğendim, çünkü yeterince basit, göstermesi kolay, adım adım çözülebilir (her şeyi kırmadan ek davranışlar ekleyin), Edge vakaları ve hata işleme hakkında konuşmaya izin verir ve ayrıca veriler hakkında konuşmaya izin verir yapıları.

22
barjak

Adaylarla röportaj yaparken ve orada iş olmayanlara filtre uygularken bunu son derece aydınlatıcı buldum. Karmaşıklık açısından Fizz Buzz'a benzer, ancak veritabanı becerilerine odaklanır.

Assuming the following basic  table structure
Documents (DocID, DocDate)
Keywords (KeyWordID, KeyWord)
DocumentKeywords (DocID,KeywordID)

Write a query to return the following:
Part 1: Documents with a DocDate after 4/1/1995  
Part 2: Documents that contain the keyword "Blue"  
Part 3: Documents that contain the either the keyword "Blue" or "Yellow"
Part 4: Documents that contain the both the keywords "Blue" and "Yellow"

İstedikleri herhangi bir SQL varyantında yazmasına izin verdim ve küçük sözdizimi problemlerinde çok seçici değilim. Temel olarak temel ilişkisel DB kavramlarını anladıklarını bilmek istiyorum.

Çoğu aday hiç bir sorun yaşamadan 3. bölümden geçebilir. Kaç bölümün cevabının sadece operatörü nerede OR 'dan AND' e nerede) değiştirmek olduğunu düşündüğüne şaşıracaksınız.

40
JohnFx

"Bana hassas bir ayrıntı vermeden, üzerinde çalıştığınız son projenin tasarımını beyaz tahtaya çizin."

20
Uberto

strcpy, strcmp ve arkadaşlarını uygulayın.

14
fredoverflow

Birkaç disiplini kapsayan favorim, arabirim (C # 'da) verilen ikili ağaçtaki düğüm sayısını saymaktır:

public interface IBinaryTree<T>
{
    IBinaryTree<T> Left
    {
        get;
    }

    IBinaryTree<T> Right
    {
        get;
    }

    T Data
    {
        get;
    }

    // Other properties and methods not germane to this problem.
}

ve sadece eğlenmek için, uygulama burada, görüşmecinin bunu görmesine gerek yok.

public sealed class BinaryTree<T> : IBinaryTree<T>
{
    private readonly IBinaryTree<T> left;

    private readonly IBinaryTree<T> right;

    private readonly T data;

    public BinaryTree(
        IBinaryTree<T> left,
        IBinaryTree<T> right,
        T data)
    {
        this.left = left;
        this.right = right;
        this.data = data;
    }

    public IBinaryTree<T> Left
    {
        get
        {
            return this.left;
        }
    }

    public IBinaryTree<T> Right
    {
        get
        {
            return this.right;
        }
    }

    public T Data
    {
        get
        {
            return this.data;
        }
    }

    // Other properties and methods not germane to this problem.
}

ve asistan sınıfı:

public static class BinaryTreeNodeCounter
{
    public static int CountNodes<T>(this IBinaryTree<T> tree)
    {
        // TODO: What goes here?
    }
}

Görmeyi sevdiğim çözüm şudur:

public static class BinaryTreeNodeCounter
{
    public static int CountNodes<T>(this IBinaryTree<T> tree)
    {
        return tree == null
            ? 0
            : 1 + tree.Left.CountNodes() + tree.Right.CountNodes();
    }
}

Aşağıdaki bilgileri gösterir:

  • bir ağaç (özellikle ikili ağaç) nasıl çalışır
  • ikili ağacın özyinelemeli tanımı
  • özyinelemeli yöntemler ve temel vakaların özyinelemeyi nasıl durdurduğu
  • tek bir düğümü saymanın anlamı
  • sözleşme olarak arayüzler
  • (daha az önemli) C # sözdizimi bilgisi:
    • jenerik
    • uzatma yöntemleri
    • üçlü operatör
14
Jesse C. Slicer

Benim için ilginç beyaz tahta tartışmalarını ortaya çıkaran iki soru

  1. "Lütfen bir web tarayıcısının oluşturulan bir sayfayı nasıl elde ettiğini istediğiniz kadar ayrıntılı açıklayabilir misiniz?"
  2. "Lütfen Java Hazırda Bekletme modunun nasıl çalıştığını açıklayın"

Basit başlar ve sonra giderek daha karmaşık hale gelirler.

12
Gary Rowe

Bir bulmaca ya da tasarım sorusunu beyaz tahta sorusu olarak kullanmak istemiyorum. Adayın kod yazma yeteneğini test eden basit, basit soruları tercih ediyorum. Favorilerim:

1) Tek başına bağlı bir listeyi tersine çevirmek için bir işlev yazın. (3 noktaya ihtiyaçları olduğunu fark etmeleri biraz zaman alıyor.)

2) İkili ağaç verildiğinde, ikili ağacın derinliğini bulun. (Bu soru özyinelemeli kod yazma yeteneklerini test eder. Temel durumları sağlam olup olmadıklarını kontrol etmeme izin verin.)

3) Bir tamsayı dizisinin ikili aranması için bir prosedür yazın. (Jon Bentley'nin dediği gibi (Programlama İncilerinde), birçok kişi ikili arama yazarken hata yapma eğilimindedir. Daha sonra hata bulma, test senaryoları yazma, kod üzerinden çalışma vb.

8
pyNem

Bunu çalıştığım bir şirkette kullandık.

Adayı, izleme süresi için kullanılan bir parça kağıt verdik. Bir veya bölümlerimiz tarafından kullanılan gerçek bir zaman çizelgesiydi. Adaydan, daha iyi bir zaman izleme aracı oluşturmak için tasarım sürecinde bize yol göstermesini istedik. Hiçbir sınır, hangi dil vb. Demedi, sadece adayın "tam yaşam döngüsü" ne kadar iyi olduğunu görmek istiyorum. Gereksinimleri nasıl topladıkları hakkında bize gerçek bir fikir verdi. Veritabanı tablolarını nasıl yapılandırdıklarını, ne tür kullanıcı arayüzlerini yapabildiklerini. Bu görev için iletişim becerilerine açıkça ihtiyaç vardı. Genellikle birkaç büyük beyaz tahtaya sahip bir odada yapıldı ve 2 saat kadar sürdü.

Bu işlemi kullanarak birkaç kişiyi işe aldık ve eğer bu işte gerçekten başarılı oldularsa, bizim için gerçekten başarılı oldular. Eğer marjinal olsaydı ve yine de onları işe almaya karar verdiysek (ayrı konu) onlar marjinal programcılardı.

7
Bill Leeper

Programlama alan adımla ilgili bir sorun kullanıyorum.

Web uygulamaları geliştirirsem, kayıtları silen bir web formunu nasıl hazırlayabileceklerini ve örneğin kaydı veritabanından kaldırmak için hangi yaklaşımı alabileceklerini görmek istiyorum. Bu bana temel veritabanı ilkelerini biliyorlarsa, silme işlemini doğrulamak için kullanıcıyla nasıl etkileşime girdiklerini ve yumuşak silme işleminin ne olduğunu bilip bilmediklerini söyler.

Benim favorim yok. Seçtiğim sorun işe bağlı olarak büyük ölçüde değişecektir.

Sorunu bir röportajda tamamen çözüp çözemeyecekleri, hangi teknolojiler ve diller kullandıkları veya kodlarının bir beyaz tahtada ne kadar berbat göründüğü umurumda değil. Düşünce modelini arıyorum; Sorunları nasıl çözeceklerini ve çözeceklerini bildiklerini görmek istiyorum.

6
Robert Harvey

Benim favorim bir arkadaşımın kullandığı biriydi.

İlk "n" asal sayıları üretme/yazdırma/saklama işlevini yazın ve ardından nasıl çalıştığını ve ne kadar verimli olduğunu açıklayın.

İyi çalışıyor çünkü:

  1. Bu algoritmik bir sorudur, bu yüzden görüşmecinin düşünmesini ve sonra düşüncelerini açıklamasını gerektirir - böylece beyninin nasıl çalıştığını görebilirsiniz.

  2. Dilden bağımsızdır.

  3. Neredeyse hiç kimse onu tamamen doğru anlıyor (normalde kaçırdıkları bir Edge vakası var (normalde 1 veya 2) veya negatif sayıları kullanmıyorlar, bu yüzden hataları nasıl ele aldıklarını ve yanlış olduklarını söylediklerini görüyorsunuz.

  4. Birçoğu basit ama çok yavaş bir elek olarak yapar (örneğin, n'nin% 80'i n'yi kontrol edecektir, n'yi n'den küçük tüm tamsayılara bölerek bir başbakandır), bu da size algoritma tabanlı nasıl geliştirebilecekleri hakkında konuşmaları için çok fazla alan sağlar uzay/zaman değiş tokuşlarında örneğin "Eğer 2'ye bölünemez olmadığını zaten biliyorsanız, bir sayıyı neden 4'e bölüyorsunuz?" veya "Yalnızca sqrt (n) 'den küçük tüm asal sayılara bölmeniz gerektiğini düşündünüz, ancak bu, bu sayıları bir yerde saklamanızı gerektiriyor, bunun sonuçları nedir?")

Cevabı doğru bulmaları için onlara gerek yok. Eğer biri düşünür ve düşüncelerini açıklayabilirse, iyi bir aday olma yolunda uzun bir yol vardır.

4
Rhys Gibson

Gerçekten aradığınız şeylere bağlıdır, görüntüleri içeren çok sayıda dinamik web çalışması yapan bir kuruluş olarak, işle ilgili bir geometri sorusu sorma eğilimindeyim. Her durumda, bir geometri sorusu sormaya eğilimliyim, çünkü güzel ve görsel olan ve adaylara çalışmalarını görsel olarak sunma ve bir problemle metodik olarak çalışma yeteneğini gösterebilecek iyi bir matematik testi buluyorum.

İleri düzey adaylar için bazen şu soruyu veriyorum:

Bu görüntü hilal gösterir. Ayın B'den D'ye genişliği 9 cm ve E ve F arasında, 5 cm'dir. C, daha büyük dairenin merkezidir.

a) Lütfen hilal alanını hesaplayınız. Crescent Moon Maths Question

b) Görüntüyü, herhangi bir boyuttan iç daireye sığacak şekilde yeniden boyutlandırmak için gerekli hesaplamaları açıklayın ve merkez noktası biliniyorsa dairenin içine yerleştirin.

Daha kolay bir soru için genellikle aynı soruyu veririm, ancak "kare içindeki bir daire içindeki kareyi" örnek olarak kullanın. Bu çok kolay olmasına rağmen, üzerinde mükemmel bir cebir beklenir.

Square inside a circle inside a square

Bunun ötesinde, değişken uzunluklu bir veri kümesinin tüm kombinasyonlarını üretmek için bir algoritmayı çalmalarını isteme eğilimindeyim.

3
Orbling

Gördüğüm en iyi FizzBuzz cevapları:

SQL Server 2008

;WITH mil AS (
 SELECT TOP 100 ROW_NUMBER() OVER ( ORDER BY c.column_id ) [n]
 FROM master.sys.all_columns as c
 CROSS JOIN master.sys.all_columns as c2
)                
 SELECT CASE WHEN n  % 3 = 0 THEN
             CASE WHEN n  % 5 = 0 THEN 'FizzBuzz' ELSE 'Fizz' END
        WHEN n % 5 = 0 THEN 'Buzz'
        ELSE CAST(n AS char(6))
     END + CHAR(13)
 FROM mil

C # (basit)

foreach (int number in Enumerable.Range(1, 100))
{
    bool isDivisibleBy3 = (number % 3) == 0;
    bool isDivisibleBy5 = (number % 5) == 0;

    if (isDivisibleBy3)
         Console.Write("Fizz");

    if (isDivisibleBy5)
         Console.Write("Buzz");

    if (!isDivisibleBy3 && !isDivisibleBy5)
         Console.Write(number);

    Console.WriteLine();
}

C # (akıllı)

 Enumerable
  .Range(1, 100)
  .Select(i =>
    i % 15 == 0 ? "FizzBuzz" :
    i % 5 == 0 ? "Buzz" :
    i % 3 == 0 ? "Fizz" :
    i.ToString())
  .ToList()
  .ForEach(s => Console.WriteLine(s));
3
Simon Hughes

Mühendislik okulumun C sınavlarının bir parçası olan ve öğrencilerin tatillerden döndüklerinde başarısız olmalarını sağlamak için "kukla" testi olarak kullanılan aff_z adlı bir şey (işaretleme sistemimiz, bir testin başarısız olmasının işaretlemeyi durdurduğunu ima etti, bu nedenle bu kukla testin başarısız olması Testinizin tamamını geçersiz kılar.Sizi moronik ayrıntılara dikkat etmeye zorlar). Röportajlar sırasında bir veya iki kez tekrar kullandım.

Her neyse ... Tam formülasyonu unuttum ama böyle bir şeydi ...

Write a function taking a single char parameter named c and returning nothing (void).
You function must satisfy the following requirements:

 - if c is bigger or equal to 0, then print 'z' to standard output
 - if c is stricly smaller than 0 , then print 'z' to standard output
 - in any other case, print the letter 'z' to standard output

Üzücü olan şey, cevap oldukça açık olduğunda sadece bazı öğrencilerin aşırı derecede kıvrımlı çözümler üretmemesi değil, bazılarının başarısız olmayı bile başarabilmesidir.

İster inanın ister inanmayın, görüşmeler sırasında da oldu.

Bazı başvuru sahipleri olası şubeleri yazmaya başlayıp neyin yanlış olduğunu fark edeceğinden (açıkçası, sadece sözlü olarak sorarsanız, konuştuğunuzda bunu yapmaları oldukça anlaşılabilir olduğu için) röportajlarda çalıştırmak oldukça eğlenceliydi ... ama Yazılı olarak ver, şaşırtıcı buluyorum ...)

Aptalca, ama sanırım minimalist bir tarama (benzer şekilde, JS programcılarını işe alırken, her zaman bir değişkeni nasıl bildireceğimizi soruyorum ve daha sonra var kullanmanın herhangi bir fark yaratıp yaratmadığına dair cevaplarına bağlı olarak, çoğu zaman üzücü bir an, dürüst.)

3
haylem

Adaylarda görüştüğüm birkaç şey arıyorum. Çevrimiçi olarak tarif edemediğim için oldukça zayıf adaylar alıyoruz ve bunu beklemeye geldim, bu yüzden onlar için oldukça kolayım. Yine de, arıyorum:

  • Tasarım bilinci.

    "Bana ad ve soyadlı, numarayı açıklayan birden fazla Telefon Numarasına sahip kişiler (hücre/ev/iş/vb.) İçeren bir adres defteri programının tablo yapısını göster"

    Burada bir UML 2.0 spec diyagramı aramıyorum, burada basit bir kabarcık diyagramı iyi. Makul olduğu sürece.

  • Bir veritabanı ile çalışma bilgisi (örn. SQL)

    1. Soyadı "smith" olan kişilerin telefon numaralarının tümünü almak için sorgu yazın
    2. Veritabanındaki tüm müşterileri ve soyadı "smith" olanların telefon numaralarını almak için bir sorgu yazın
  • Test bilgisi

    Sorgunuzun sonuçlarını daha önce döndüren public IEnumerable<PhoneNumber> GetPhoneNumbers(string lastName) imzalı bir yöntem olduğunu varsayın. Yönteme bir null iletirseniz, bunun bir NullReferenceException oluşturduğunu varsayın. Bu işlevi göstermek için bir test yazın.

    GetPhoneNumbers soyad "smith" olan biri için (123)456-7890 ev telefon numarasını döndüreceğini gösteren bir test yazın.

  • Bazı kodların nasıl yazılacağı bilgisi

    Yazdığınız testlerin gereksinimlerini karşılayacak bir yöntem uygulayın.


Aldığımız başvuranların sayısı ve kalitesi göz önüne alındığında, ciddi şekilde başvuran herkesle görüştüm. Hiç kimseyi işe almadım.

2
Steven Evers

Aşağıdaki sorun için bir algoritma yazın: Bir sayı verildiğinde n , n düğümleri.

Böylece, n = 0 ve n = 1 için cevap 1'dir. n = 2, 2 tane var: kök düğüm ve sonra ya sağ ya da sağdaki ikinci düğüm.

Tasarım teknikleri hakkında bilgi edinebilir ve özyineleme, not veya dinamik programlama çözümü düşünüp düşünmediklerini görebilirsiniz.

[Ayrıca, ikili arama ağaçlarıyla ilgili, ancak farklı bir durum için bu StackOverflow tartışma konusuna bakın.]

2
Macneil

Bir yazılım geliştiricisiyle röportaj yapsaydım, ondan bir yazılım tasarlamasını ve her satırda tam ad içeren keyfi olarak büyük bir dosyadan yinelenen girişleri kaldırmak için donanım gereksinimlerini açıklamasını isterdim. Sorun tanımının bazı kısımlarını kasıtlı olarak belirsiz bırakıyorum. Ardından, gereksinimleri, farklı ödünleşmeleri, veri yapılarını ve algoritmaları, G/Ç (ikincil depolama), yazılım ve donanım teknolojilerini, ölçeklenebilirliği vb.

Bence bu, küçük ama zorlu bir sorundur ve başvuranın birçok bilgi işlem alanındaki bilgi ve becerilerini ortaya çıkarır.

2

En sevdiğim C++ beyaz tahta problemim adayın uygulanmasını sağlamak

Vector3 a(1, 0, 0), b(0, 1, 0); // Mathematical 3D vectors
double c = 7.0;
double d = a * c;
Vector3 e = a * b;

Bundan öğrenebilirim

  • aday geri dönüş türüne aşırı yük yükleyemeyeceğinizi fark ederse (juniour seviyesi C++ göstergesi)
  • aday geçici olarak nasıl iade edileceğini ve döküm operatörlerini nasıl uygulayacağını biliyorsa (orta seviye C++ göstergesi)
  • adayın temel vektör matematiğini yapabilmesi (uygulama alanımız için önemli)
2
smithco

Implement function/method(on c/c++/c# whatever), which calculates n-th item of Fibonacci sequence

Birçok adam buna takılabilirdi. Bir çözüm verilirse - genellikle özyineleme kullanır. Daha sonra:

Implement the same via 'for'-loop

Size söyleyemem, kaç arkadaşın her iki görevi de tamamlayamadığını - adayların% 50'si.
Bu yüzden beğendim :)

2
alexb

Veritabanları için:

Tablo: Şeyler 
 
 Kimlik Adı 
 1 Bodkin Van Horn 
 2 Hoos-Foos 
 3 Hoos-Foos [.____. 4 Sıcak- Shot 
 5 Marvin O'Gravel Balon Yüzü 
 6 Snimm 
 7 Marvin O'Gravel Balon Yüzü 
 8 Marvin O'Gravel Balon Yüzü 
 9 Dave

Bana adı dayalı böyle bir tablo de çoğaltacak bazı SQL yazın (ve hangi kimliği geri almak umurumda değil ama hangisi döndürülürse o ad için geçerli olmalıdır). Doğru SQL uygulandıktan sonra tablo aşağıdaki gibi bir şey sunacaktır:

Tablo: Şeyler 
 
 Kimlik Adı 
 1 Bodkin Van Horn 
 2 Hoos-Foos 
 4 Sıcak Çekim 
 5 Marvin O 'Çakıl Balon Yüzü 
 6 Snimm 
 9 Dave

Beğendim çünkü:

  • Tekilleştirme, gerçek bir dünya sorunudur
  • Bunu yapmanın bir sürü yolu var
  • Bu yolların hemen hemen hepsinin (biraz daha) karmaşık SQL'i (aslında GROUP BY ve HAVING) veya birden çok daha basit ifadeleri zincirleyerek akıl yürütme yeteneğini anlamanız gerektiğini düşünüyorum.
  • Sözdizimi veya herhangi bir şeyle mücadele ediyor olsalar bile, bu son bit nedeniyle, ne düşündüklerini sorabilir ve bu şekilde konuşabilirsiniz.
  • Dr. Seuss'a atıfta bulunuyor

(Burası bunu yapmanın tamamen önemsiz bir yolu olduğunu ve tüm bu yıllar boyunca çok fazla karmaşıklaştığımı bulduğum yer).

2
Jon Hopkins

Genellikle çalıştıkları son sistemin bir blok diyagramını çizmelerine izin veriyorum, bloklar arasındaki ilişkiler hakkında sorular soruyorlar ve daha sonra üzerinde çalıştıkları/sorumlu oldukları blok üzerinde detaylandırmalarını sağlıyorlar. Küçük bir alanın ötesinde nasıl göründüğü gibi, 'nerede' hareket ettiğini bilmek onun için ne kadar önemli olduğu gibi, bu alıştırmadan pek çok şey öğrenebilirsiniz, ayrıca oynadığı rol hakkında bir anahtar ya da yan da olabilir rolü.

2
Assimiz

Standart 52 kart destesini nasıl temsil edersiniz? Herhangi bir programlama dili iyidir. Kartları nasıl karıştırırsın?

2
MrDatabase

İçinde 200 balık olan bir kase var. Bu balıkların% 99'u lepistes değildir. Kaç balık çıkarmalısınız ki kalanların% 2'si lepistes. İşini göster.

Bu, kafa karıştırıcı gereksinimlerle ilgilidir. Aynı soru sırasında perspektifleri birçok kez değiştirmek için bu şekilde söylenir. Gerçekten neler olup bittiğini anlayabileceklerini görmek içindir.

Kaç kişinin yanlış anladığına şaşıracaksınız.

1
dacracot

Bana kullanıldığı zamandan beri kullandığım bir soru şudur:

1 ile 100 arasındaki tüm sayıları yazdırmak için bir işlev yazın.

Kullanmamın nedeninin büyük bir kısmı, oraya çözüm alıp çeşitli yönlerde hareket edebilmenizden kaynaklanıyor:

1 ile 1000, 10000 veya n arasındaki tüm sayıları yazdırmak için işlevi nasıl değiştirirsiniz?

Bu sorulara verdikleri yanıtlar, değişen gereksinimlere nasıl yanıt verdikleri ve performans değerlendirmelerini tanıyabilecekleri konusunda size fikir verebilir. Güçlü bir aday, fonksiyonun ne sıklıkta çağrılması gerektiğine ilişkin bir soru ile cevap verebilir.

Farklı bir yöne hareket etmek:

Bu işlevin dakikada birkaç kez çağırılacağını ve performansın bir endişe kaynağı olduğunu bilseydiniz, işleri nasıl değiştirirsiniz?

Bunu yanal düşünmelerini kontrol etmenin bir yolu olarak kullanıyorum. Asal sayıların hesaplanması, maksimum değer büyüdükçe yavaş olabileceğinden, çözmeye çalıştığınız soruna göre ayarlanan bir tür hesaplanmış veya önceden hesaplanmış arama tablosu kullanmak bazen daha mantıklıdır.

1
rjzii

İşte bir düşünceyi kışkırtmak için bir tane - Basit, biraz matematik içerir ve adayın temel bilgisayar tasarımı bilgisini (taşma, sayısal temsil, vb.) Kontrol eder:

Giriş olarak bir çift X, Y tamsayı alan ve X * Y'nin 10 ile eşit olarak bölünüp bölünemeyeceğini belirleyen bir program (veya prosedür) yazın. ÖNEMLİ NOT: X ve Y, X * Y'nin mevcut en büyük tamsayı türünden taşmasına yetecek kadar büyük olabilir. makinenizde.



T_BOOL MultipleOfTen(int x, int y)
{
    return((x%2==0 || y%2==0) && (x%5==0 || y%5==0));
}
1
oosterwal

En sevdiğim printf prototipini sormakla başlamak. Daha sonra, bir karakter yazdıracak, printf uygulayacak düşük düzeyli bir API printc (char c) verildi. Yığın CPU'nun bir parçası gibi her türlü ilginç yanıt verir. Tahmin edebileceğiniz gibi ben C ve gömülü arka plandayım.

1
aufather

Birkaç favorim var, ama burada neredeyse her zaman ortaya çıkan bir çift var. Çoğu zaman son tur teknik (C++) röportajları yapıyorum, bu yüzden yeni ilgi alanlarına yol açan daha uzun ve daha açık soruları tercih ediyorum. 'Doğru' cevap yok, sadece diğer konuşmalara bir açıklık var.

1) Temel bir paylaşılan işaretçi uygulamak, uygulamalarında tr1 veya boost'un paylaşılan işaretçileri ile karşılaştırıldığında eksikliklerin nerede olduğu, nasıl kullanılması gerektiği vb.

2) Bir kod incelemesi. Deneyimli işe alımlar için, tasarım problemleri, hatalar, kodlama korkuları ve potansiyel sürdürülebilirlik sorunları için sağlanan bazı kodları güvenle gözden geçirmelerini bekliyoruz. Ayrıca, elbette, bunu nasıl düzeltebilecekleri; ve bazen bu mesajı düşürdükleri küçük geliştiriciye nasıl verdikleri.

1
Alaric

Aşağıdaki yöntemi doldurun: PS Bir sayı modu, en çok tekrarlanan sayıdır (listede).

public int getMode(List<Integer> numberList) {


}

Bu verimli bir kod olduğunu görmek için.

0
Buhake Sindi