在本文中,我们将详细介绍如何计算OCaml中任何元素类型的列表中连续出现的次数?的各个方面,同时,我们也将为您带来关于bash–计算单词列表中每个单词出现在文件中的次数?、c#–如何查找同一对象在列表
在本文中,我们将详细介绍如何计算OCaml中任何元素类型的列表中连续出现的次数?的各个方面,同时,我们也将为您带来关于bash – 计算单词列表中每个单词出现在文件中的次数?、c# – 如何查找同一对象在列表中出现的次数,然后找到最常出现的对象的属性、Java-如何计算字符串中char出现的次数?、Java如何计算列表中元素的出现次数的有用知识。
本文目录一览:- 如何计算OCaml中任何元素类型的列表中连续出现的次数?
- bash – 计算单词列表中每个单词出现在文件中的次数?
- c# – 如何查找同一对象在列表中出现的次数,然后找到最常出现的对象的属性
- Java-如何计算字符串中char出现的次数?
- Java如何计算列表中元素的出现次数
如何计算OCaml中任何元素类型的列表中连续出现的次数?
这显然是一项家庭作业,所以我只给出一些提示。
使代码正常工作时,不会将字符串(或任何其他类型)加在一起。它将整数加在一起。因此,您可能想再次在网上回顾一下这些示例:-)
您绝对可以使用fold_left
来获得答案。首先,请注意结果是成对的列表。每对的第一个元素可以是任何类型,具体取决于原始列表的类型。每对中的第二个元素是一个int。因此,您有一个正在使用的基本类型:('a * int) list
。
想象一下,您有办法“增加”这样的列表:
let increment (list: ('a * int) list) value =
(* This is one way to think of your problem *)
此函数在列表中查找第一个元素等于value的对。如果找到它,它将返回一个新列表,其中关联的int比以前大一个。如果找不到,它将返回一个带有附加元素(value,1)
的新列表。
这是您要折叠到列表上的基本操作,而不是示例代码的+
操作。
bash – 计算单词列表中每个单词出现在文件中的次数?
bear 3 fish 15
我试过这个,但它不起作用:
cat list.txt | grep -c file1.txt
while read; do echo -n "$REPLY " fgrep -ow "$REPLY" data.txt | wc -l done < <(sort -u word_list.txt)
“秘密酱”包括:
>使用隐式REPLY变量;>使用进程替换从单词列表文件中收集单词;和>确保您在数据文件中搜索整个单词.
c# – 如何查找同一对象在列表中出现的次数,然后找到最常出现的对象的属性
private static PokerHandsRank CheckHandForPairs(Hand hand) { var faceCount = (from card in hand.Cards group card by card.Face into g let count = g.Count() orderby count descending select count).Take(2).ToList(); // take two to check if multiple pairs of pairs,if second in list is 1 there will be two pairs switch (faceCount[0]) { case 1: return PokerHandsRank.HighCard; case 2: return faceCount[1] == 1 ? PokerHandsRank.Pair : PokerHandsRank.TwoPair; case 3: return faceCount[1] == 1 ? PokerHandsRank.ThreeOfKind : PokerHandsRank.FullHouse; case 4: return PokerHandsRank.FourOfKind; default: throw new Exception("something went wrong here"); } }
正如你所看到的,我已经使用linq来获得最多出现配对的列表,但是我不知道如何在我将它们分开后完成它以获得卡的面值.
这是我目前的比较方法
public int Compareto(Hand other) { if (HandRank == other.HandRank) //if the hand rank is equal,sort the cards by face value and compare the two biggest { sortHandbyFace(this); // sorts cards into order by face sortHandbyFace(other); for (int i = 4; 0 <= i; i--) { if (Cards[i].Face == other.Cards[i].Face) { if (i == 0) return 0; continue; } return Cards[i].Face > other.Cards[i].Face ? 1 : -1; } } return HandRank > other.HandRank ? 1 : -1;
比较完美的比较高卡问题,但我需要添加一个检查,如果两个手牌等级,然后检查他们的价值是一对,两对,满屋或三种(然后找到最高的面值的一对)
如果您需要有关我的程序的更多信息,请随时查看https://codereview.stackexchange.com/questions/152857/beginnings-of-a-poker-hand-classifier-part-2?noredirect=1&lq=1后的codereview
解决方法
using System.Linq; List<int> ids = // int maxFrequency = 0; int IDOfMax = 0; foreach(var grp in ids.GroupBy(i => i)) { if (grp.Count() > maxFrequency) { maxFrequency = grp.Count(); IDOfMax = grp.Key; } } // The object (int in this case) that appears most frequently // can be identified with grp.key
更新:在重新阅读问题之后,听起来您需要尝试使用查询中的计数和面值返回一个新对象.
你可以这样做:
public class FaceCountResult { public int Count { get; set; } public Face FaceValue { get; set; } public FaceCountResult(int count,Face faceValue) { Count = count; FaceValue = faceValue; } }
然后,faceCount应该看起来像这样:
var faceCount = (from card in hand.Cards group card by card.Face into g let count = g.Count() orderby count descending select new FaceCountResult(count,card.Face);
我不确定Take(2)部分将如何考虑到这一点,因为我不太了解代码的这一部分.
然后,您可以在faceCount [0] .Count上切换并使用faceCount [0] .FaceValue来获取面值.
Java-如何计算字符串中char出现的次数?
我有string
a.b.c.d
我想用惯用的方式计算“.”的出现次数,最好是一行。
之前我曾将这个约束表示为“没有循环”,以防你想知道为什么每个人都试图在不使用循环的情况下回答问题)。
答案1
小编典典我对此的“惯用一语”是:
int count = StringUtils.countMatches("a.b.c.d", ".");
当它已经成为公共语言时,为什么还要自己编写呢?
Spring Framework的oneliner为此:
int occurance = StringUtils.countOccurrencesOf("a.b.c.d", ".");
Java如何计算列表中元素的出现次数
我有一个ArrayListJava
的Collection
类,如下所示:
ArrayList<String> animals = new ArrayList<String>();animals.add("bat");animals.add("owl");animals.add("bat");animals.add("bat");
如你所见,animals ArrayList
包含3个bat
元素和一个owl
元素。我想知道Collection框架中是否有任何API可以返回出现次数,bat或者是否有其他方法可以确定出现次数。
我发现Google的Collection Multiset
确实有一个API,该API返回一个元素出现的总数。但这仅与JDK 1.5兼容。我们的产品当前在JDK 1.6中,因此我无法使用它。
答案1
小编典典我很确定Collections
中的静态频率方法会派上用场:
int occurrences = Collections.frequency(animals, "bat");
无论如何,这就是我要做的。我很确定这是jdk 1.6。
今天关于如何计算OCaml中任何元素类型的列表中连续出现的次数?的介绍到此结束,谢谢您的阅读,有关bash – 计算单词列表中每个单词出现在文件中的次数?、c# – 如何查找同一对象在列表中出现的次数,然后找到最常出现的对象的属性、Java-如何计算字符串中char出现的次数?、Java如何计算列表中元素的出现次数等更多相关知识的信息可以在本站进行查询。
本文标签: