函数查找字符串中的重复字符及其在Dart语言中的出现次数
如何在字符串中找到重复字符及其出现次数?该函数应为Dart语言中的通用函数 样本: 输入=“abcbcaad” Output=“a”:3函数查找字符串中的重复字符及其在Dart语言中的出现次数,dart,Dart,如何在字符串中找到重复字符及其出现次数?该函数应为Dart语言中的通用函数 样本: 输入=“abcbcaad” Output=“a”:3 “B”:2,“c”:3void main(){ void main(List<String> args) { var input = 'abcBCAacd'.toLowerCase().split(''); var list1 = input.toSet(); var myMap = Map<String, int>.fro
“B”:2,“c”:3
void main(){
void main(List<String> args) {
var input = 'abcBCAacd'.toLowerCase().split('');
var list1 = input.toSet();
var myMap = Map<String, int>.fromIterables(list1, List.generate(list1.length, (i) => 0));
input.forEach((e) => myMap[e] = myMap[e]! + 1);
print(myMap);
}
int nboccurrence=0;
字符串输入=“abcdefff”;
对于(var i=0;i
我不得不假设你想要计算d
,并且所有的东西都应该折叠成小写。如果B
和B
在不同的存储桶中,只需从下面删除toLowerCase()
:
void main() {
var input = 'abcBCAacd';
var chars = input.toLowerCase().split('');
var counts = <String, int>{};
for (var char in chars) {
counts[char] = (counts[char] ?? 0) + 1;
}
print(counts);
}
void main(){
变量输入='abcBCAacd';
var chars=input.toLowerCase().split(“”);
变量计数={};
for(字符中的var char){
计数[字符]=(计数[字符]?0)+1;
}
打印(计数);
}
这具有O(n^2)效率。查看其他解决方案。这似乎比必要的复杂得多。看看我的,看来没什么了。第四行(Map的初始化)可以被抑制,第五行可以有一个微小的变化,这就是所有的人……我建议在Map上使用update
方法,它提供了一个ifAbsent
参数:counts.update(char,(count)=>count+1,ifAbsent:()=>1)代码>。啊,我在找那个。但我的比较短。:)您似乎没有从上一个问题(因为您没有提供任何代码而关闭)中学到任何东西。请提供您自己的代码并解释您的问题所在。Stackoverflow不是一个代码编写服务,你可以让其他人来解决你的任务。我建议你看看下面的资源,自己试试。如果您有错误并且仍然需要帮助,则必须首先通过添加已使用的代码来更新问题。链接:如果不定义“字符”,这个问题就没有很好的定义。如果只考虑字符串中的任何代码单元作为字符,那就相当简单了。如果不是,那就太复杂了。“áá”
是否包含重复的字符(它是一个单独的á
代码单元,后跟一个a
和一个组合重音)。如果问题仅限于ASCII,那么它应该很简单,但在实践中也不是特别有用。
void main() {
int nbOccurence = 0;
String input ="abcdeffff";
for( var i = 0 ; i < input.length; i++ ) {
nbOccurence = 0;
for( var j = 0 ; j < input.length; j++ ) {
if (input[i] == input[j]){
nbOccurence++;
}
}
print(input[i] + ":" + nbOccurence.toString());
}
}
void main() {
var input = 'abcBCAacd';
var chars = input.toLowerCase().split('');
var counts = <String, int>{};
for (var char in chars) {
counts[char] = (counts[char] ?? 0) + 1;
}
print(counts);
}