Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

View kostrse's full-sized avatar

Sergey Kostrukov kostrse

View GitHub Profile
@kostrse
kostrse / hashcode.cs
Last active August 29, 2015 14:03
GetHashCode for Strings
public static class StringHashCodeExtensions
{
public static int GetHashCodeJava(this string value)
{
if (value == null)
throw new ArgumentNullException("value");
int hashCode = 0;
for (int i = 0; i < value.Length; i++)
@kostrse
kostrse / queens.cs
Last active August 29, 2015 14:04
Queens Puzzle
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Algorithms.Maths
{
public struct Queen
{
@kostrse
kostrse / gist:3687221
Created September 9, 2012 20:52
CheckAccountNumber - checks checksum for Russian bank account number
private static bool CheckAccountNumber(string bankNumber, string accountNumber)
{
int[] mask = new[] { 7, 1, 3, 7, 1, 3, 7, 1, 3, 7, 1, 3, 7, 1, 3, 7, 1, 3, 7, 1, 3, 7, 1 };
if (bankNumber.Length < 3)
{
Console.WriteLine("Incorrect bank number.");
return false;
}
@kostrse
kostrse / wildcards.scala
Last active February 27, 2016 19:16
Wildcard search on Scala
object Program {
val testText = "The quick brown fox jumps over a lazy dog."
val testPattern = "fox * over"
def main (args: Array[String]) {
println(
s"""
|Text: $testText
@kostrse
kostrse / CircularQueue.cs
Last active February 27, 2016 19:21
Interview questions
public class CircularQueue
{
// Motivation:
//
// We do not store count of items in the queue to avoid mutual blocking of enqueue and dequeu operaions.
// In the current implementation enqueue and dequeue do not block each other,
// but simultaneous calls of the same operations will be blocking.
//
// Alos we allocate array with size N + 1 to the logical capacity of the queue N,
// this is made to distinguish between cases when the queue is empty or full
public class StateSwitch
{
private readonly Action enterAction;
private readonly Action leaveAction;
private readonly bool leaveOnSuspend;
private uint counter;
private bool entered;
@kostrse
kostrse / EnumerableLastNth.cs
Last active February 27, 2016 19:28
Last N-th of IEnumerable
public static class LinkedListExtensions
{
public static T Last<T>(this IEnumerable<T> items, int index)
{
T[] keepItems = new T[index];
int position = 0;
int count = 0;
foreach (var item in items)
static async Task FailsAsync(bool shouldFail)
{
if (shouldFail)
throw new ApplicationException("Custom exception.");
await Task.CompletedTask;
}
static Task Fails(bool shouldFail)
{
$n = 100; $sum = 0; for ($i=0; $i -lt $n; $i++) { $sum = $sum + (Measure-Command -Expression { Invoke-WebRequest -Uri $url }).Milliseconds }; $sum / $n
@kostrse
kostrse / NetFxRuntimeVersion.fsx
Last active March 18, 2017 09:04
Determine .NET runtime
open System
open System.Reflection
let getMethod (bindingFlags: BindingFlags) (methodName: string) (t: Type): MethodInfo option =
if t <> null then
Some (t.GetMethod(methodName, bindingFlags))
else
None
let privateMethod (methodName: string) (t: Type) =