diff options
Diffstat (limited to 'placement.ipynb')
| -rw-r--r-- | placement.ipynb | 1816 |
1 files changed, 1816 insertions, 0 deletions
diff --git a/placement.ipynb b/placement.ipynb new file mode 100644 index 0000000..f47c492 --- /dev/null +++ b/placement.ipynb @@ -0,0 +1,1816 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "321\n" + ] + } + ], + "source": [ + "num = input(\"Input a 3 digit number\\n\")\n", + "num = int(num)\n", + "num2 = \"\"\n", + "num2 += str(num%10)\n", + "num//=10\n", + "num2 += str(num%10)\n", + "num//=10\n", + "num2 += str(num%10)\n", + "num//=10\n", + "print(num2)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3\n" + ] + } + ], + "source": [ + "num = int(input(\"Input a 2 digit number\\n\"))\n", + "num1 = num%10\n", + "num//=10\n", + "num1 += num%10\n", + "print(num1)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "12\n" + ] + } + ], + "source": [ + "num = int(input(\"Input a 6 digit number\\n\"))\n", + "num1=0\n", + "num1 += num%10\n", + "num//=10\n", + "num1 += num%10\n", + "num//=10\n", + "num1 += num%10\n", + "num//=10\n", + "num1 += num%10\n", + "num//=10\n", + "num1 += num%10\n", + "num//=10\n", + "num1 += num%10\n", + "print(num1)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "321321\n" + ] + } + ], + "source": [ + "num = int(input(\"Input a 6 digit number\\n\"))\n", + "num1=\"\"\n", + "num1 += str(num%10)\n", + "num//=10\n", + "num1 += str(num%10)\n", + "num//=10\n", + "num1 += str(num%10)\n", + "num//=10\n", + "num1 += str(num%10)\n", + "num//=10\n", + "num1 += str(num%10)\n", + "num//=10\n", + "num1 += str(num%10)\n", + "num1 = int(num1)\n", + "print(num1)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A is 20\n", + "B is 10\n" + ] + } + ], + "source": [ + "a = 10\n", + "b = 20\n", + "\n", + "tmp=a\n", + "a=b\n", + "b=tmp\n", + "\n", + "a=a+b\n", + "b=a-b\n", + "a=a-b\n", + "\n", + "a,b=b,a\n", + "\n", + "print(\"A is \",a)\n", + "print(\"B is \",b)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3\n" + ] + } + ], + "source": [ + "a = int(input(\"Enter number 1\\n\"))\n", + "b = int(input(\"Enter number 2\\n\"))\n", + "c = int(input(\"Enter number 3\\n\"))\n", + "d = int(input(\"Enter number 4\\n\"))\n", + "e = int(input(\"Enter number 5\\n\"))\n", + "'''\n", + "greatest=0\n", + "if(a>b and a>c and a>d and a>e):\n", + " greatest = a\n", + "if(b>a and b>c and b>d and b>e):\n", + " greatest = b\n", + "if(c>b and c>a and c>d and c>e):\n", + " greatest = c\n", + "if(d>b and d>c and d>a and d>e):\n", + " greatest = d\n", + "if(e>b and e>c and e>d and e>a):\n", + " greatest = e\n", + "\n", + "print(greatest)\n", + "'''\n", + "\n", + "greatest = a\n", + "if(greatest<b):\n", + " greatest = b\n", + "if(greatest<c):\n", + " greatest = c\n", + "if(greatest<d):\n", + " greatest = d\n", + "if(greatest<e):\n", + " greatest = e\n", + "\n", + "print(greatest)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ASCII Values\n", + "a --> 97 A --> 65 0 --> 48 <br>\n", + "b --> 98 B --> 66 1 --> 49 <br>\n", + "z --> 122 Z --> 90 9 --> 57 <br>" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Lower case\n" + ] + } + ], + "source": [ + "char = ord(input(\"Enter any character\"))\n", + "if char in range(65,91):\n", + " print(\"Capital\")\n", + "elif char in range(97,123):\n", + " print(\"Lower case\")\n", + "elif char in range(48,58):\n", + " print(\"Digit\")\n", + "else:\n", + " print(\"Special Symbol\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "for loop is used when range is given <br>\n", + "while loop is used when range is **not** given" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "321\n" + ] + } + ], + "source": [ + "num=int(input(\"Enter a number\"))\n", + "reverse=0\n", + "while num > 0:\n", + " reverse=(reverse*10)+(num%10)\n", + " num//=10\n", + "print(reverse)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Day 2 29/01/25" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "False\n" + ] + } + ], + "source": [ + "# Armstrong number 123 = 1^3 + 2^3 + 3^3\n", + "num = int(input(\"Enter a number: \"))\n", + "sum = 0\n", + "num1 = num\n", + "while num > 0:\n", + " sum+=((num%10)*(num%10)*(num%10))\n", + " num//=10\n", + "print(sum==num1)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n", + "153\n", + "370\n", + "371\n", + "407\n" + ] + } + ], + "source": [ + "# all armstrong till 1000\n", + "for i in range(1,1001):\n", + " num = i\n", + " sum = 0\n", + " num1 = num\n", + " while num > 0:\n", + " sum+=((num%10)*(num%10)*(num%10))\n", + " num//=10\n", + " if num1 == sum:\n", + " print(i)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "False\n" + ] + } + ], + "source": [ + "# Peterson 123 = 1!+2!+3!\n", + "num=int(input(\"Enter a number: \"))\n", + "sum=0\n", + "num1=num\n", + "while num > 0:\n", + " remainder = num%10\n", + " factorial = 1\n", + " while remainder > 0:\n", + " factorial*=remainder\n", + " remainder-=1\n", + " sum+=factorial\n", + " num//=10\n", + "print(sum==num1)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n", + "2\n", + "145\n" + ] + } + ], + "source": [ + "for i in range(1,10001):\n", + " num=i\n", + " sum=0\n", + " num1=num\n", + " while num > 0:\n", + " remainder = num%10\n", + " factorial = 1\n", + " while remainder > 0:\n", + " factorial*=remainder\n", + " remainder-=1\n", + " sum+=factorial\n", + " num//=10\n", + " if sum==num1:\n", + " print(i)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "False\n" + ] + } + ], + "source": [ + "# Tech number 2025\n", + "'''\n", + "20 25\n", + "20+25=45\n", + "45*45=2025\n", + "'''\n", + "num=int(input(\"Enter a number: \"))\n", + "mid = len(str(num))//2\n", + "num1 = num\n", + "rem1 = num%(10**mid)\n", + "num//=(10**mid)\n", + "sum=(rem1+num)**2\n", + "print(sum==num1)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n", + "81\n", + "100\n", + "2025\n", + "3025\n", + "9801\n", + "10000\n" + ] + } + ], + "source": [ + "for i in range(1,10001):\n", + " num=i\n", + " mid = len(str(num))//2\n", + " num1 = num\n", + " rem1 = num%(10**mid)\n", + " num//=(10**mid)\n", + " sum=(rem1+num)**2\n", + " if sum==num1:\n", + " print(i)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0 \t 1\t 1\t 2\t 3\t 5\t 8\t 13\t 21\t 34\t 55\t 89\t 144\t 233\t 377\t 610\t 987\t 1597\t 2584\t 4181\t 6765\t 10946\t 17711\t 28657\t 46368\t 75025\t 121393\t 196418\t 317811\t 514229\t 832040\t 1346269\t 2178309\t 3524578\t 5702887\t 9227465\t 14930352\t 24157817\t 39088169\t 63245986\t 102334155\t 165580141\t 267914296\t 433494437\t 701408733\t 1134903170\t 1836311903\t 2971215073\t 4807526976\t 7778742049\t 12586269025\t 20365011074\t 32951280099\t 53316291173\t 86267571272\t 139583862445\t 225851433717\t 365435296162\t 591286729879\t 956722026041\t 1548008755920\t 2504730781961\t 4052739537881\t 6557470319842\t 10610209857723\t 17167680177565\t 27777890035288\t 44945570212853\t 72723460248141\t 117669030460994\t 190392490709135\t 308061521170129\t 498454011879264\t 806515533049393\t 1304969544928657\t 2111485077978050\t 3416454622906707\t 5527939700884757\t 8944394323791464\t 14472334024676221\t 23416728348467685\t 37889062373143906\t 61305790721611591\t 99194853094755497\t 160500643816367088\t 259695496911122585\t 420196140727489673\t 679891637638612258\t 1100087778366101931\t 1779979416004714189\t 2880067194370816120\t 4660046610375530309\t 7540113804746346429\t 12200160415121876738\t 19740274219868223167\t 31940434634990099905\t 51680708854858323072\t 83621143489848422977\t 135301852344706746049\t 218922995834555169026\t 354224848179261915075\t 573147844013817084101\t 927372692193078999176\t 1500520536206896083277\t 2427893228399975082453\t 3928413764606871165730\t 6356306993006846248183\t 10284720757613717413913\t 16641027750620563662096\t 26925748508234281076009\t 43566776258854844738105\t 70492524767089125814114\t 114059301025943970552219\t 184551825793033096366333\t 298611126818977066918552\t 483162952612010163284885\t 781774079430987230203437\t 1264937032042997393488322\t 2046711111473984623691759\t 3311648143516982017180081\t 5358359254990966640871840\t 8670007398507948658051921\t 14028366653498915298923761" + ] + } + ], + "source": [ + "# fibonacci\n", + "num = int(input(\"Enter a number: \"))\n", + "n1 = 0\n", + "n2 = 1\n", + "print(n1,\"\\t\",n2, end=\"\")\n", + "for i in range(2,num):\n", + " n3 = n1+n2\n", + " print(\"\\t\",n3,end=\"\")\n", + " n1=n2\n", + " n2=n3" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "8.789516194048478e+34\n" + ] + } + ], + "source": [ + "num=int(input(\"Enter a number: \"))\n", + "x=int(input(\"Enter value for x: \"))\n", + "sum=1\n", + "for i in range(1,num):\n", + " sum+=(x**i)/(i)\n", + "print(sum)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "7.389056098930649\n" + ] + } + ], + "source": [ + "def fact(num):\n", + " if(num==1):\n", + " return 1\n", + " return num*fact(num-1)\n", + "\n", + "num=int(input(\"Enter a number: \"))\n", + "x=int(input(\"Enter value for x: \"))\n", + "sum=1\n", + "for i in range(1,num):\n", + " sum+=(x**i)/(fact(i))\n", + "print(sum)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "15129\n" + ] + } + ], + "source": [ + "# Multiply 2 numbers without using * symbol\n", + "num1=int(input(\"Enter the first number: \"))\n", + "num2=int(input(\"Enter the first number: \"))\n", + "sum=0\n", + "for i in range(1,num1+1):\n", + " sum+=num2\n", + "print(sum)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1111\n", + "2222\n", + "3333\n", + "4444\n" + ] + } + ], + "source": [ + "for i in range(1,5):\n", + " for j in range(1,5):\n", + " print(i, end=\"\")\n", + " print()" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\t2\t3\t4\t5\t\n", + "6\t7\t8\t9\t10\t\n", + "11\t12\t13\t14\t15\t\n", + "16\t17\t18\t19\t20\t\n", + "21\t22\t23\t24\t25\t\n" + ] + } + ], + "source": [ + "num=1\n", + "for i in range(1,6):\n", + " for j in range(1,6):\n", + " print(num,end=\"\\t\")\n", + " num+=1\n", + " print()" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ABCD\n", + "EFGH\n", + "IJKL\n", + "MNOP\n" + ] + } + ], + "source": [ + "num=65\n", + "for i in range(1,5):\n", + " for j in range(1,5):\n", + " print(chr(num),end=\"\")\n", + " num+=1\n", + " print()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n", + "22\n", + "333\n", + "4444\n" + ] + } + ], + "source": [ + "for i in range(1,5):\n", + " for j in range(1,5):\n", + " if j in range(1,i+1):\n", + " print(i,end=\"\")\n", + " # else:\n", + " # print(\"$\",end=\"\")\n", + " print()" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " *\n", + " **\n", + " ***\n", + "****\n" + ] + } + ], + "source": [ + "for i in range(4,0,-1):\n", + "# for i in range(1,5):\n", + " for j in range(1,5):\n", + " if j in range(1,i):\n", + " print(\" \",end=\"\")\n", + " else:\n", + " print(\"*\",end=\"\")\n", + " print()" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4444\n", + "333\n", + "22\n", + "1\n" + ] + } + ], + "source": [ + "for i in range(4,0,-1):\n", + " for j in range(1,i+1):\n", + " print(i,end=\"\")\n", + " print()" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "****\n", + " ***\n", + " **\n", + " *\n" + ] + } + ], + "source": [ + "for i in range(1,5):\n", + " for j in range(1,5):\n", + " if j in range(1,i):\n", + " print(\" \",end=\"\")\n", + " else:\n", + " print(\"*\",end=\"\")\n", + " print()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 10/2/25" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Pre Pearl" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " *\n", + " ***\n", + " *****\n", + "*******\n" + ] + } + ], + "source": [ + "for i in range(4,0,-1):\n", + " for j in range(1,5):\n", + " if j in range(1,i):\n", + " print(\" \",end=\"\")\n", + " else:\n", + " print(\"*\",end=\"\")\n", + " if j in range(i+1,5):\n", + " print(\"*\", end=\"\")\n", + " print()" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " *\n", + " ***\n", + " *****\n", + "*******\n", + " *****\n", + " ***\n", + " *\n" + ] + } + ], + "source": [ + "for i in range(4,0,-1):\n", + " for j in range(1,5):\n", + " if j in range(1,i):\n", + " print(\" \",end=\"\")\n", + " else:\n", + " print(\"*\",end=\"\")\n", + " if j in range(i+1,5):\n", + " print(\"*\", end=\"\")\n", + " print()\n", + "\n", + "for i in range(2,5):\n", + " for j in range(1,5):\n", + " if j in range(1,i):\n", + " print(\" \",end=\"\")\n", + " else:\n", + " print(\"*\",end=\"\")\n", + " if j in range(i+1,5):\n", + " print(\"*\", end=\"\")\n", + " print()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Pearl" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "# for i in range(1, 5):\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "* * * * * * * * * \n", + "* * * * * * * * * \n", + "* * * * * * * * * \n", + "* * * * * * * * * \n", + "* * * * * * * * * \n", + "* * * * * * * * * \n", + "* * * * * * * * * \n", + "* * * * * * * * * \n", + "* * * * * * * * * \n" + ] + } + ], + "source": [ + "for i in range(1, 10):\n", + " for j in range(1, 10): \n", + " print(\"*\",end=\" \")\n", + " print(\"\") " + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "***\n", + " **\n", + " *\n" + ] + } + ], + "source": [ + "for i in range(1,4):\n", + " for j in range(1,4):\n", + " if j in range(1,i):\n", + " print(\" \",end=\"\")\n", + " else:\n", + " print(\"*\",end=\"\")\n", + " print() " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Post Pearl" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "31\n" + ] + } + ], + "source": [ + "# Print second largest\n", + "list = [3,1,34,31,6,2,23,4,6,2,13]\n", + "largest=list[0]\n", + "second_largest = list[0]\n", + "for num in list:\n", + " if largest < num:\n", + " second_largest = largest\n", + " largest=num\n", + " elif second_largest < num:\n", + " second_largest=num\n", + "print(second_largest)" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1, 3, 4, 2]\n" + ] + } + ], + "source": [ + "# Remove all duplicates from list\n", + "list=[1,1,1,3,4,2,4,2]\n", + "remove_dup=[]\n", + "for num in list:\n", + " if num not in remove_dup:\n", + " remove_dup.append(num)\n", + "list=remove_dup\n", + "print(list)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Missing value is 2\n", + "Missing value is 4\n", + "Missing value is 6\n", + "Missing value is 7\n", + "Missing value is 8\n" + ] + } + ], + "source": [ + "# Find the missing number\n", + "list = [1,3,5,9]\n", + "for i in range(list[0],list[-1]):\n", + " if i not in list:\n", + " print(\"Missing value is \",i)" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[2]\n" + ] + } + ], + "source": [ + "arr1=[1,2,2,1]\n", + "arr2=[2,2]\n", + "inter=[]\n", + "for num in arr2:\n", + " if num in arr1 and num not in inter:\n", + " inter.append(num)\n", + "print(inter)" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[2, 3, 4, 5, 1]\n" + ] + } + ], + "source": [ + "# Left shift\n", + "\n", + "def rotate_left(arr,num):\n", + " num%=len(arr)\n", + " return arr[num:]+arr[:num]\n", + "\n", + "arr=[1,2,3,4,5]\n", + "print(rotate_left(arr,1))" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[6, 7, 8, 1, 2, 3, 4, 5]\n" + ] + } + ], + "source": [ + "# Right shift\n", + "\n", + "def rotate_right(arr,num):\n", + " num%=len(arr)\n", + " return arr[-num:] + arr[:-num]\n", + "\n", + "print(rotate_right([1,2,3,4,5,6,7,8],3))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 17/2/25" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1, -1, 2, -2, 3, 4, -7]\n" + ] + } + ], + "source": [ + "def largest_subarray_zero_sum(arr):\n", + " prefix_sum = 0\n", + " sum_index_map = {}\n", + " max_length = 0\n", + " start, end = -1, -1\n", + "\n", + " for i, num in enumerate(arr):\n", + " prefix_sum += num\n", + "\n", + " if prefix_sum == 0:\n", + " max_length = i + 1\n", + " start, end = 0, i\n", + "\n", + " if prefix_sum in sum_index_map:\n", + " if i - sum_index_map[prefix_sum] > max_length:\n", + " max_length = i - sum_index_map[prefix_sum]\n", + " start, end = sum_index_map[prefix_sum] + 1, i\n", + " else:\n", + " sum_index_map[prefix_sum] = i\n", + "\n", + " return arr[start:end + 1] if max_length > 0 else []\n", + "\n", + "# Example Usage:\n", + "arr = [1, -1, 2, -2, 3, 4, -7, 8]\n", + "print(largest_subarray_zero_sum(arr))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[1, -2, 2, -3, 3, -1]" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Rearrange pos and negs to be alternating\n", + "def alternating(arr):\n", + " pos=[num for num in arr if num>0]\n", + " negs=[num for num in arr if num<0]\n", + " output=[]\n", + " a,b=0,0\n", + " for i in range(len(pos)+len(negs)):\n", + " if i%2==0:\n", + " output.append(pos[a])\n", + " a+=1\n", + " else:\n", + " output.append(negs[b])\n", + " b+=1\n", + " return output\n", + "arr=[1,2,3,-2,-3,-1]\n", + "alternating(arr)" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Find the majority element\n", + "def majority(arr):\n", + " votes=0\n", + " n=len(arr)\n", + " candidate=None\n", + " for num in arr:\n", + " if votes == 0:\n", + " candidate=num\n", + " elif num == candidate:\n", + " votes+=1\n", + " else:\n", + " votes-=1\n", + " count=0\n", + " for i in range (n):\n", + " if (arr[i] == candidate):\n", + " count += 1\n", + " \n", + " if (count > n // 2):\n", + " return candidate\n", + " else:\n", + " return -1\n", + "\n", + "arr=[1,1,1,1,2,1,1]\n", + "majority(arr)" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[24, 12, 4, 1]" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Product of array except self\n", + "def prod(arr):\n", + " output=[]\n", + " for num in arr:\n", + " work=[]\n", + " work.append(arr)\n", + " for i in range(len(work[0])):\n", + " if work[0][i] == num:\n", + " work[0][i]=1\n", + " break\n", + " prod=1\n", + " for number in work[0]:\n", + " prod*=number\n", + " output.append(prod)\n", + " return output\n", + "prod([1,2,3,4])" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[1, 2, 55, 0, 0]" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Move zeros to the end\n", + "def move_zeros(arr):\n", + " for num in arr:\n", + " if num == 0:\n", + " arr.remove(num)\n", + " arr.append(num)\n", + " return arr\n", + "\n", + "move_zeros([1,2,0,55,0])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 19/2/25" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[0, 0, 1, 1, 2, 2]\n" + ] + } + ], + "source": [ + "# Dutch national flag\n", + "# In an array containing 0s 1s and 2s sort in a single pass\n", + "def dutch(arr):\n", + " zeros=[]\n", + " ones=[]\n", + " twos=[]\n", + " output=[]\n", + " for num in arr:\n", + " if num == 0:\n", + " zeros.append(num)\n", + " elif num == 1:\n", + " ones.append(num)\n", + " elif num ==2:\n", + " twos.append(num)\n", + " output.extend(zeros)\n", + " output.extend(ones)\n", + " output.extend(twos)\n", + " return output\n", + "\n", + "arr=[2,0,1,2,1,0]\n", + "print(dutch(arr))" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[2, 2]\n" + ] + } + ], + "source": [ + "# Intersection of 3 arrays\n", + "arr1=[1,2,2,1]\n", + "arr2=[2,2,1]\n", + "arr3=[2,2]\n", + "inter=[]\n", + "final=[]\n", + "for num in arr2:\n", + " if num in arr1:\n", + " inter.append(num)\n", + "for num in arr3:\n", + " if num in inter:\n", + " final.append(num)\n", + "print(final)" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "8\n" + ] + } + ], + "source": [ + "# Maximum consecutive ones\n", + "def maxOnes(arr):\n", + " max_count=0\n", + " current_count=0\n", + " for num in arr:\n", + " if num == 1:\n", + " current_count+=1\n", + " max_count = max(max_count,current_count)\n", + " else:\n", + " current_count=0\n", + " return max(max_count,current_count)\n", + "arr = [1,1,1,0,1,0,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1]\n", + "print(maxOnes(arr))" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[[1, 6], [8, 15], [25, 30], [32, 34]]" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# merge intervals\n", + "def mergeIntervals(arr):\n", + " arr.sort(key=lambda x: x[0])\n", + " merged=[]\n", + " for interval in arr:\n", + " if not merged or merged[-1][1] < interval[0]:\n", + " merged.append(interval)\n", + " else:\n", + " new_value=[merged[-1][0], interval[1]]\n", + " merged.pop()\n", + " merged.append(new_value)\n", + " return merged\n", + "arr=[[1,3], [2,6], [8, 10], [10,15],[32,34], [25,30]]\n", + "mergeIntervals(arr)" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997]\n" + ] + } + ], + "source": [ + "# List of prime\n", + "def is_prime(num):\n", + " for i in range(2,num//2 +1):\n", + " if num % i == 0:\n", + " return False\n", + " return True\n", + "primes = []\n", + "inp = int(input(\"Enter number: \"))\n", + "for i in range(2,inp):\n", + " if is_prime(i):\n", + " primes.append(i)\n", + "print(primes)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 24/2/25" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a\n", + "n\n", + "i\n", + "and\n", + "anand\n", + "and panchdhari\n", + "anand panchdhari\n", + "anand panchdhari\n", + "aadpnhhr\n", + "irahdhcnap dnana\n", + "iadca nn\n" + ] + } + ], + "source": [ + "s='anand panchdhari'\n", + "print(s[0])\n", + "print(s[1])\n", + "print(s[-1])\n", + "print(s[2:5])\n", + "print(s[:5])\n", + "print(s[2:])\n", + "print(s[:])\n", + "print(s[::1])\n", + "print(s[::2])\n", + "print(s[::-1])\n", + "print(s[::-2])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Del keyword is used to delete variables, kinda like free() in c and c++" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "123\n" + ] + } + ], + "source": [ + "a=123\n", + "print(a)\n", + "del a\n", + "# print(a) # This line gives an error" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + ".find() gives first occurance <br> .rfind() gives last occurance" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6\n", + "2\n", + "15\n" + ] + } + ], + "source": [ + "a='Anand is very fat'\n", + "print(a.find('is'))\n", + "print(a.find('a'))\n", + "print(a.rfind('a'))" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "8\n", + "5\n", + "3\n" + ] + } + ], + "source": [ + "a='ababbbaabababaa'\n", + "print(a.count('a'))\n", + "print(a.count('ab'))\n", + "print(a.count('a',3,10))" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Anand is very fat\n", + "bbbbbbbb\n" + ] + } + ], + "source": [ + "a='Anand is very thin'\n", + "print(a.replace('thin','fat'))\n", + "a='abababba'\n", + "print(a.replace('a','b'))" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['Anand', 'mota', 'anand', 'Mota']\n", + "bancho Anand\n", + "bancho mota\n", + "bancho anand\n", + "bancho Mota\n", + "['24/2/25']\n", + "['24', '2', '25']\n" + ] + } + ], + "source": [ + "a='Anand mota anand Mota'\n", + "l1 = a.split()\n", + "print(l1)\n", + "for x in l1:\n", + " print(\"bancho \",x)\n", + "# .split() can also have a delimiter so it will be .split(\"delimiter\")\n", + "date=\"24/2/25\"\n", + "print(date.split()) # wrong\n", + "print(date.split('/')) # right" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Anand is a mota is a anand is a Mota\n" + ] + } + ], + "source": [ + "# join is used to join arrays together using 'delimiter'.join(array)\n", + "s=' is a '.join(l1)\n", + "print(s)" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ANAND MOTA ANAND MOTA\n", + "anand mota anand mota\n", + "Anand mota anand mota\n", + "Anand Mota Anand Mota\n", + "aNAND MOTA ANAND mOTA\n" + ] + } + ], + "source": [ + "print(a.upper())\n", + "print(a.lower())\n", + "print(a.capitalize())\n", + "print(a.title())\n", + "print(a.swapcase())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + ".isalnum()<br>\n", + ".isalpha()<br>\n", + ".isalpha()<br>\n", + ".isdigit()<br>\n", + ".islower()<br>\n", + ".isupper()<br>\n", + ".istitle()<br>\n", + ".isspace()" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "olleh dnanA\n", + "olleh dnanA\n" + ] + } + ], + "source": [ + "# Reverse string without shortcut or function\n", + "def rev(s):\n", + " a=''\n", + " for i in range(len(s)-1,-1,-1):\n", + " a+=s[i]\n", + " return (a)\n", + "\n", + "def rev1(s):\n", + " a=''\n", + " for x in s:\n", + " a=x+a\n", + " return a\n", + "\n", + "print(rev(\"Anand hello\"))\n", + "print(rev1(\"Anand hello\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'hathi mota a is Anand '" + ] + }, + "execution_count": 76, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Reverse order of words\n", + "s = 'Anand is a mota hathi'\n", + "def reverse_order_of_words(s):\n", + " a=s.split()\n", + " output=''\n", + " for i in a:\n", + " output = i + \" \" +output\n", + " return output\n", + "reverse_order_of_words(s)" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'olleH I ma dnanA'" + ] + }, + "execution_count": 77, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def reverse_internal_content_of_each_word(s):\n", + " a=s.split()\n", + " output=[]\n", + " for x in a:\n", + " output.append(x[::-1])\n", + " return ' '.join(output)\n", + "reverse_internal_content_of_each_word(\"Hello I am Anand\")" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'abc'" + ] + }, + "execution_count": 78, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def remove_duplicate_character_from_string(s):\n", + " output=''\n", + " for a in s:\n", + " if a not in output:\n", + " output+=a\n", + " return output\n", + "remove_duplicate_character_from_string('ababbababacabbababaabab')" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 79, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def is_valid_number(num):\n", + " s=str(num)\n", + " if len(s) == 10 and s.isdigit() and (s.startswith('9') or s.startswith('8') or s.startswith('7')):\n", + " return True\n", + " else: \n", + " return False\n", + "is_valid_number(8928474898)" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Yes\n" + ] + } + ], + "source": [ + "def check_if_is_anagram(s1,s2):\n", + " hello=True\n", + " if len(s1) == len(s2):\n", + " for a in s1:\n", + " if a not in s2:\n", + " hello=False\n", + " else:\n", + " hello=False\n", + " print(\"Yes\" if hello else \"No\")\n", + "check_if_is_anagram('silent','listen')" + ] + }, + { + "cell_type": "code", + "execution_count": 110, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 110, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def check_if_is_pangram(s):\n", + " s = ''.join((s.lower()).split())\n", + " out=''\n", + " for a in s:\n", + " if a not in out:\n", + " out+=a\n", + " return True if len(out)==26 else False\n", + "check_if_is_pangram('abcdefghijklmnopqrstuvvwxyz')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "venv", + "language": "python", + "name": "venv" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.10" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} |
