1. 程式人生 > >codewars演算法題(3)

codewars演算法題(3)

第三題:

問題:You probably know the "like" system from Facebook and other pages. People can "like" blog posts, pictures or other items. We want to create the text that should be displayed next to such an item.

Implement a function likes :: [String] -> String, which must take in input array, containing the names of people who like an item. It must return the display text as shown in the examples:

自己程式碼:

def likes(names):
    if(len(names)==0):
        return "no one likes this"
    elif(len(names)==1):
        return names[0]+" likes this"
    elif(len(names)==2):
        return names[0]+" and "+names[1]+" like this"
    elif(len(names)==3):
        return names[0]+", "+names[1]+" and "+names[2]+" like this"
    else:
        return names[0]+", "+names[1]+" and "+str(len(names)-2)+" others like this"

評分較高程式碼:

  1. def likes(names):  
  2.     n = len(names)  
  3.     return {  
  4.         0'no one likes this',  
  5.         1'{} likes this',   
  6.         2'{} and {} like this',   
  7.         3'{}, {} and {} like this',   
  8.         4'{}, {} and {others} others like this'
  9.     }[min(4, n)].format(*names[:3], others=n-
    2
鵝鵝鵝~~~~~·這就是差距啊

第四題:

問題:

Accumul.accum("abcd"); // "A-Bb-Ccc-Dddd"
Accumul.accum("RqaEzty"); // "R-Qq-Aaa-Eeee-Zzzzz-Tttttt-Yyyyyyy"
Accumul.accum("cwAt"); // "C-Ww-Aaa-Tttt"
The parameter of accum is a string which includes only letters from a..z and A..Z.
評分較高程式碼: (1):        (2):        (3):                其中title()方法返回“標題化”字串,就是說所有單詞都是以大寫開始,其餘字母均為小寫 第五題:(從奇中找偶,從偶中找奇) 問題:You are given an array (which will have a length of at least 3, but could be very large) containing integers. The array is either entirely comprised of odd integers or entirely comprised of even integers except for a single integer N. Write a method that takes the array as an argument and returns N.

For example:

[2, 4, 0, 100, 4, 11, 2602, 36]

Should return: 11

[160, 3, 1719, 19, 11, 13, -21]

Should return: 160

問題陳述:目的是一個列表中異類,即列表中大多數為偶數,則返回奇數,否則反之 程式碼實現:  (1)       (2)         第六題:(字串中是否有重複字元)

問題:An isogram is a word that has no repeating letters, consecutive or non-consecutive. Implement a function that determines whether a string that contains only letters is an isogram. Assume the empty string is an isogram. Ignore letter case.

is_isogram("Dermatoglyphics" ) == true
is_isogram("aba" ) == false
is_isogram("moOse" ) == false # -- ignore letter case
程式碼實現: (1)          (2)       set()函式,set中引數的值是不能重複的例如:set(“hello”),結果為‘h’‘e’‘l’‘o’ 具體的set()函式介紹可看:部落格 201707242237持續更新~~~~

相關推薦

codewars演算法3

第三題: 問題:You probably know the "like" system from Facebook and other pages. People can "like" blog posts, pictures or other items. We wa

leetcode演算法——golang——3

給定一個字串,找出不含有重複字元的最長子串的長度。 示例 1: 輸入: "abcabcbb" 輸出: 3 解釋: 無重複字元的最長子串是 "abc",其長度為 3。 示例 2: 輸入: "bbbbb" 輸出: 1 解釋: 無重複字元的最長子串是 "b",其長度為 1。

基礎演算法1—— 題目:有1、2、3、4個數字,能組成多少個互不相同且無重複數字的四位數?

題目:有1、2、3、4個數字,能組成多少個互不相同且無重複數字的四位數? 分析題目,要求將1,2,3,4四個數字成各個位數不相同且無重複的四位數,可以寫四個for迴圈,每一個迴圈代表一個位數上的數字,即1——4,再定義一個int型的變數count,初始值為

劍指offer演算法二維陣列中的查詢

劍指offer演算法題(一) 題目1:二維陣列中的查詢 在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。 思路分析:  從左上往右下方來解決這個問題  例如在

那些年,面試中常見的資料結構基礎和演算法

前言 這是 資料結構和演算法面試題系列的下半部分,這部分主要是演算法類 包括二分查詢、排序演算法、遞迴演算法、隨機演算法、揹包問題、數字問題等演算法相關內容。本系列完整程式碼在 github 建了個倉庫,所有程式碼都重新整理和做了一些基本的測試,程式碼倉庫地址在這裡: shishujuan/dsalg

牛客663從尾到頭列印連結串列

輸入一個連結串列,按連結串列值從尾到頭的順序返回一個ArrayList。 思路:很簡單,設定一個棧,遍歷連結串列將連結串列依次壓棧,最後依次彈出。 class Solution { public: vector<int> printListFromTailToHead(L

【精選】JAVA入門演算法

跌倒了,一定要爬起來。不爬起來,別人會看不起你,你也會失去機會。 1.題目:打印出楊輝三角形(要求打印出10行) 什麼是楊輝三角呢?下面這個就是 楊輝三角最大的特性就是每個數字都是該數字肩上的兩個數字之和,這道題經常在學習二維陣列和迴圈控制中出現 我們可以假設

RSA演算法原理——3RSA加解密過程及公式論證

個人分類: 演算法 上期(RSA簡介及基礎數論知識)為大家介紹了:互質、尤拉函式、尤拉定理、模反元素 這四個數論的知識點,而這四個知識點是理解RSA加密演算法的基石,忘了的同學可以快速的回顧一遍。 三、RSA加解密過程及公式論證 今天的內容主要分為三

【精選】JAVA入門演算法

把敬業變成習慣。短期來看是為了僱主,長期來看是為了自己。 1.題目:輸入一行字元,分別統計出其中英文字母、空格、數字和其它字元的個數。 估計統計字元是所有人都做過的題 這裡給出兩種思路,第一種思路是比較ASCII碼,第二種是使用正則匹配 private static

【精選】JAVA入門演算法

把敬業變成習慣。短期來看是為了僱主,長期來看是為了自己。 1.題目:全排列問題 這種問題在演算法題中應用很多,主要思路是使用遞迴來求,求n個數的全排列就是把第一個數固定後求n-1個數的全排列,不斷遞迴到只有一個數 private static void Method1(

【精選】JAVA入門演算法

時時要有危機意識。別以為你命好運也好。 1.題目:打印出所有的 水仙花數 ,所謂 水仙花數 是指一個三位數,其各位數字立方和等於該數本身。 例如:153是一個 水仙花數 ,因為153=1的三次方+5的三次方+3的三次方。 題非常簡單,只要用for迴圈,取出數的個位、十位

JAVA入門演算法

不只為了餬口,還要有抱負。你要想:在這個行業中,我要成為什么樣的人。 一、最大的時間 題目: 給定一個由 4 位數字組成的陣列,返回可以設定的符合 24 小時制的最大時間。 最小的 24 小時制時間是 00:00,而最大的是 23:59。從 00:00 (午夜)開始

JAVA入門演算法

把敬業變成習慣。短期來看是為了僱主,長期來看是為了自己。 1.題目:輸入一行字元,分別統計出其中英文字母、空格、數字和其它字元的個數。 估計統計字元是所有人都做過的題 這裡給出兩種思路,第一種思路是比較ASCII碼,第二種是使用正則匹配 private static

面向物件程式設計2018上機3

/*設計一個類,用於對字串進行管理。要求: (1)在定義物件時,能夠確定字串的最大長度並清空字串。 (2)定義成員函式input, 用於從鍵盤為字串輸入資料。 (3)定義運算子過載函式,用於判斷兩個物件中的字串是否相同。 (4)定義成員函式exchange,用於互換字

日常演算法

1.對稱二叉樹 給定一個二叉樹,檢查它是否是映象對稱的。 例如,二叉樹 [1,2,2,3,4,4,3] 是對稱的。 但是下面這個 [1,2,2,null,3,null,3] 則不是映象對稱的: 想法:直接遞迴遍歷判斷是否相等即可 程式碼: public b

日常演算法

1.二叉樹的最小深度 給定二叉樹,找到它的最小深度。 最小深度是沿從根節點到最近的葉節點的最短路徑上的節點數。 注意: 葉子是沒有子節點的節點。 例: 給定二叉樹[3,9,20,null,null,15,7], 返回其最小深度= 2。 想法:使用bfs

演算法介紹3 編輯距離演算法-字串相似度

           編輯距離,又稱Levenshtein距離,是指兩個字串之間,由一個轉成另一個所需的最少編輯操作次數。        具體的操作方法為:     

資料結構與演算法複習3—— 線段樹

http://www.cppblog.com/MemoryGarden/archive/2009/04/11/79565.aspx http://www.notonlysuccess.com/?p=59 http://edu.codepub.com/2009/1125/18163.php POJ 2104,

2018網易校招程式設計3交錯01串

如果一個01串任意兩個相鄰位置的字元都是不一樣的,我們就叫這個01串為交錯01串。例如: “1”,”10101”,”0101010”都是交錯01串。 小易現在有一個01串s,小易想找出一個最長的連續子串,並且這個子串是一個交錯01串。小易需要你幫幫忙求出最長的

劍指Offer演算法1

class Solution { public: bool Find(int target, vector<vector<int> > array) { int i,j; i=0; j=array[0].size()-1;