علاقمندی احتمالی گوگل برای استفاده از Swift به عنوان یک زبان برنامه نویسی سطح اول در اندروید

IMG_20160630_111046تعدادی از شرکت‌های بزرگ از جمله گوگل و فیسبوک گزارش داده‌اند که نسبت به استفاده از زبان برنامه‌نویسی اپل به نام Swift علاقمند هستند. بر اساس اعلام منابع وب‌سایت معتبر The Next Web، نمایندگانی از گوگل، فیسبوک و اوبر طی جلسه‌ای که در لندن برگزار شده، در مورد این زبان برنامه‌نویسی به گفتگو پرداختند. (بیشتر…)

ساختمان داده لیست پیوندی Linked List در جاوا

لیست پیوندی نوعی از ساختمان داده برای حافظه است و ذخیره ی داده ها است. اما لیست پیوندی بر خلاف آرایه و … محدودیت مکانی ندارد و هر تعداد داده ای می‌توان در آن قرار داد. لیست پیوندی در اصل از یک گره یا Node به اسم head تشکیل شده است که همان گره خود اشاره گری به یک گره ی دیگر در خود دارد و آن گره هم یک اشاره گر به گره ی دیگر و … و عملا ما لیست یا زنجیری از گره ها را خواهیم داشت که به آن لیست پیوندی می‌گویند 🙂
معمولا برای لیست پیوندی متدهای زیر ممکن است تعریف شود:
متد insertFirst: یک داده به ابتدای لیست اضافه می‌کند.
متد insertLast: یک داده به انتهای لیست اضافه می‌کند.
متد deleteFirst: داده‌ی ابتدای لیست را برمی‌گرداند و سپس آن گره را از لیست حذف می‌کند.
متد deleteLast: داده‌ی انتهای لیست را برمی‌گرداند و سپس آن گره را از لیست حذف می‌کند.
متد peekFirst: داده‌ی ابتدای لیست را برمی‌گرداند ولی آن گره را از لیست حذف نمی‌کند.
متد peekLast: داده‌ی انتهای لیست را برمی‌گرداند ولی آن گره را از لیست حذف نمی‌کند.
متد isEmpty: در صورتی که لیست خالی باشد مقدار true را برمی‌گرداند.
(بیشتر…)

ساختمان داده صف Queue در جاوا

صف یا Queue یک حافظه ی First In – First Out است. یعنی داده ای که زودتر در این حافظه قرار می‌گیرد، زودتر از همه هم از حافظه خارج می‌شود.
معمولا برای صف متدهای زیر تعریف می‌شود:
متد insert: یک داده به انتهای صف اضافه می‌کند.
متد delete: داده ی ابتدای صف را برمی‌گرداند و سپس از صف خارج می‌کند.
متد peek: داده ی ابتدای صف را برمی‌گرداند ولی آن را از صف خارج نمی‌کند.
متد isEmpty: در صورتی که صف خالی باشد مقدار true را برمی‌گرداند.
متد isFull: در صورتی که ظرفیت حافظه ی صف پر شده باشد مقدار true را برمی‌گرداند.
متد size: تعداد اعضای منتظر در صف را برمی‌گرداند.
متد maxSize: ظرفیت صف را برمی‌گرداند.
(بیشتر…)

ساختمان داده پشته Stack در جاوا

پشته یا Stack یک حافظه ی First in – Last out است. یعنی داده ای که زودتر در این حافظه قرار می‌گیرد، دیرتر از همه هم از حافظه خارج می‌شود.
معمولا برای پشته متدهای زیر تعریف می‌شود:
متد push: یک داده به انتهای پشته اضافه می‌کند.
متد pop: آخرین داده در پشته را برمی‌گرداند و سپس از پشته حذف می‌کند.
متد peek: آخرین داده در پشته را برمی‌گرداند ولی آن را از پشته حذف نمی‌کند.
متد isEmpty: در صورتی که پشته خالی باشد مقدار true را برمی‌گرداند.
متد isFull: در صورتی که ظرفیت حافظه ی پشته پر شده باشد مقدار true را برمی‌گرداند.
متد getMaxSize: حداکثر اندازه‌ی پشته را برمی‌گرداند.
متد getSize: تعداد اعضای پر در پشته را برمی‌گرداند.
(بیشتر…)

بازی سودوکو در جاوا

در فایل sudoku.txt پنجاه پازل مختلف قرار دارند که از آسان به سخت مرتب شده اند. اعداد 0 در این فایل نشانگر جاهای خالی هستند که باید برنامه شما آن را پیدا کند. برنامه‌ای بنویسید که یکی از این پازل ها را انتخاب و نمایش دهد و سپس آن را حل کند.

حدس کلمه ی عبور در جاوا

فرض کنید رمز عبور شما فقط از ارقام تشکیل شده است. هر بار که می خواهید وارد سیستم شوید کامپیوتر از شما سه رقم را در مکان های i ام، j ام و k ام می خواهد. مثلاً، اگر رمز عبور 531278 باشد و کامپیوتر از شما رقم دوم، سوم و پنجم را بخواهد، پاسخ صحیح 317 خواهد بود. در فایل keylog.txt پنجاه کلید موفقیت آمیز اخیر کاربر ذخیره شده‌اند. با این فرض که i<j<k است، کوچک ترین معتبر را که با این فایل همخوانی دارد را پیدا کنید.

بزرگ ترین مجموع در جاوا

مثلث زیر اگر از راس مثلث شروع کنید و از طریق خانه ‌های مجاور به سمت پایین حرکت کنید. بزرگ ترین مجموعی که می توانید به دست آورید برابر ۲۳ است.


3
7 4
2 4 6
8 5 9 3

حال بزرگترین مجموع را در مثلث زیر پیدا کنید. دقت کنید که ۱۶۳۸۴ حالت مختلف وجود دارد. هدف ما این نیست که تمام حالتهای مختلف را امتحان کنیم، بلکه دنبال یک راه حل هوشمندانه هستیم.

 

75
95 64
17 47 82
18 35 87 10
20 04 82 47 65
19 01 23 75 03 34
88 02 77 73 07 63 67
99 65 04 28 06 16 70 92
41 41 26 56 83 40 80 70 33
41 48 72 33 47 32 37 16 94 29
53 71 44 65 25 43 91 52 97 51 14
70 11 33 28 77 73 17 78 39 68 17 57
91 71 52 38 17 14 91 43 58 50 27 29 48
63 66 04 68 89 53 67 30 73 16 69 87 40 31
04 62 98 27 23 09 70 98 73 93 38 53 60 04 23

ترکیبات مرتب ارقام

می‌خواهیم تمام ترکیب‌های ارقام وارد شده را به صورت مرتب چاپ کنیم. مثلا برای ارقام ۰ ، ۱ و ۲ ترکیبات مرتب سه رقمی به صورت زیر هستند:

012   021   102   120   201   210

در این پروژه k رقم که ممکن است تکراری باشند را از کاربر می‌گیرید و تمام ترکیب‌های n رقمی (n<=k) رقمی آن‌ها را چاپ می‌کنید.

1 2 3 6