寻找字符串中出现字符最多的次数,出现次数最多的字符,出现次数最多的字符的索引

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>demo</title>
    <link rel="stylesheet" href="css.css">
    <script src="js.js"></script>
</head>

<body>
    <div>
        <h2>寻找字符串中出现字符最多的次数,出现次数最多的字符,出现次数最多的字符的索引</h2>
        <input type="text" placeholder="请输入字符串">
        <button>计算</button>
        <br> 出现字符最多的次数:
        <input type="text" />
        <br> 出现次数最多的字符:
        <input type="text" />
        <br> 出现次数最多的字符的索引:
        <input type="text" />
    </div>
</body>

</html>

  css.css

div {
    width: 800px;
    height: 200px;
    background: #f1f1f1;
    margin: 0 auto;
    text-align: center;
    line-height: 20px;
    border: 1px solid #ccc;
    border-radius: 10px;
}

h2 {
    font-size: 20px;
    width: 100%;
}

button {
    cursor: pointer;
    background: #eee;
    border: 1px solid #ddd;
}

input {
    width: 165px;
    height: 25px;
    border: 1px solid #ddd;
}

  js.js

window.onload = function() {
    var oBtn = document.getElementsByTagName("button");
    var oIpt = document.getElementsByTagName("input");
    oBtn[0].onclick = function() {
        var str = oIpt[0].value;
        var objChar = {};
        for (var i = 0; i < str.length; i++) {
            var char = str.charAt(i);
            if (objChar[char]) {
                objChar[char] += 1;
            } else {
                objChar[char] = 1;
            }
        }
        var maxCount = 0;
        var maxCharIndex = [];
        for (var key in objChar) {
            if (maxCount < objChar[key]) {
                maxCount = objChar[key];
                maxCharIndex = [];
                maxCharIndex.push(key);
            } else if (maxCount == objChar[key]) {
                maxCharIndex.push(key);
            }
        }

        function getCount() {
            return maxCount;
        }

        function getmaxChar() {
            return maxCharIndex;
        }
        var objIndex = {};
        var maxIndex = [];
        for (var j = 0; j < maxCharIndex.length; j++) {
            for (var i = 0; i < str.length; i++) {
                if (str[i] == maxCharIndex[j]) {
                    maxIndex.push(i);
                }
                if (i == str.length - 1) {
                    objIndex[maxCharIndex[j]] = maxIndex;
                    maxIndex = [];
                }
            }
        }

        function getIndex() {
            var maxIndex2 = [];
            for (var key in objIndex) {
                maxIndex2.push(key + "的索引为(" + objIndex[key] + ")");
            }
            return maxIndex2;
        }
        oIpt[1].value = getCount();
        oIpt[2].value = getmaxChar();
        oIpt[3].value = getIndex();
    }
}

  

时间: 2024-10-13 09:06:18

寻找字符串中出现字符最多的次数,出现次数最多的字符,出现次数最多的字符的索引的相关文章

使用正则表达式寻找字符串中出现了几个[***]样式的字符串

使用正则表达式寻找字符串中出现了几个[***]样式的字符串 源码如下: - (NSUInteger)analyseRX:(NSString *)string withPatternString:(NSString *)patternString { // \\[[^\\]]+\\] 用以匹配字符串中所出现的 [*] 的个数 // <[^>]+> 用以匹配字符串中所出现的 <*> 的个数 if (string == nil) { return 0; } // 正则表达式 NSR

实现一个算法,寻找字符串中出现次数最少的、并且首次出现位置最前的字符

<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title>test</title> <script> // 获取字符串中出现次数最少的字符 function getRareChar(str) { let hash = {}; // 将各个字符名字.首次出现位置及出现次数存到hash表 for(le

sql 从房间号中或从含有几个&quot;-&quot;间隔的字符串中,截取楼层数,或截取第几个&quot;-&quot;后的前几个字符或数字

代号(房间号) 代号 1-1-101 1-5-502 15-3-2001 根据代号房间号截取后的楼层为 楼层 1 5 20 SELECT CASE WHEN len(RIGHT(代号, CHARINDEX('-', REVERSE(代号)) - 1))       = 3 THEN LEFT(RIGHT(代号, CHARINDEX('-', REVERSE(代号)) - 1), 1)       ELSE LEFT(RIGHT(代号, CHARINDEX('-', REVERSE(代号)) -

O(n)时间效率寻找字符串中第一次出现一次的字符

思路:我们利用简单的哈希映射来解决这个问题 建立一个数组,用数组的下标对应每个字符的值,然后扫描字符串,给每个字符的值对应的数组的位置的数加1,最后再扫描数组,遇到第一个1时,就可以找到对应的字符了 实现代码如下: #include<iostream> #include<cassert> using namespace std; char findch(const char *str, int len) { assert(str != NULL); int ar[256] = {0

js寻找字符串中a出现的位置和次数

var str='dgfsfsahgdagfdsa'; var n=0; var arr=[]; while(str.indexOf('a',n) != -1){ var m=str.indexOf('a',n); n=m+1; arr.push(m); } alert('a出现的位置'+arr+',出现的次数:'+arr.length); 原文地址:https://www.cnblogs.com/zard23/p/9197535.html

寻找字符串中第一个仅仅出现一次打字符

代码例如以下: #include <iostream> #include <string> using namespace std; char findfirstoncechar(string &str) { int arr[255] = {0}; int i; for (i = 0; i<str.size();i++) { arr[str[i]]++; } for(i = 0; i < 255 ; i++ ) { if(arr[i] == 1) { retur

寻找字符串中第一个只出现一次打字符

代码如下: #include <iostream> #include <string> using namespace std; char findfirstoncechar(string &str) { int arr[255] = {0}; int i; for (i = 0; i<str.size();i++) { arr[str[i]]++; } for(i = 0; i < 255 ; i++ ) { if(arr[i] == 1) { return

正则表达式用来根据某种匹配模式寻找字符串中的某些单词。

我们可以把这个正则表达式分成几段: / 是这个正则表达式的头部 the 是我们想要匹配的模式 / 是这个正则表达式的尾部 g 代表着 global(全局),意味着返回所有的匹配而不仅仅是第一个. i 代表着忽略大小写,意思是当我们寻找匹配的字符串的时候忽略掉字母的大小写. 例子:用全局.忽略大小写的模式选取字符串 testString中所有的单词 and

Java编程练习之判断Java文件名是否正确,判断邮箱格式是否正确和统计指定字符串中某字符现的次数

一判断Java文件名是否正确,判断邮箱格式是否正确 功能:判断Java文件名是否正确,判断邮箱格式是否正确.其中:合法的文件名应该以.java结尾:合法的邮箱名 中至少要包含 "@" , 并要求 "@" 在 "." 之前. 练习代码: public class Test { public static void main(String[] args) { //Java文件名 String fileName = "HelloWorld.j