热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

检查所有给定的字符串是否都是等值线

检查所有给定的字符串是否都是等值线原文:https://www

检查所有给定的字符串是否都是等值线

原文:https://www . geeksforgeeks . org/check-如果所有给定的字符串都是-isogram-or-not/

给定一个包含 N 字符串的数组 arr ,任务是检查所有字符串是否都是等值线图。如果是,打印,否则打印

一个等值线是一个字母出现不超过一次的单词。

示例:

输入:arr[]= {“ABCD”、“derg”、“erty”}
T3】输出:是

输入:arr[]= {“agka”、“lkmn”}
T3】输出:否

方法:如果字符串中没有字母出现超过一次,则该字符串为等值线图。现在为了解决这个问题,


  • 遍历数组 arr ,对于每个字符串

  • 创建字符的频率图。

  • 任何字符频率大于 1 的地方,打印并返回。

  • 否则,遍历整个数组后,打印

下面是上述方法的实现:

C++


// C++ code for the above approach
#include
using namespace std;
// Function to check if a string
// is an isogram or not
bool isIsogram(string s)
{
    vector<int> freq(26, 0);
    for (char c : s) {
        freq++;
        if (freq > 1) {
            return false;
        }
    }
    return true;
}
// Function to check if array arr contains
// all isograms or not
bool allIsograms(vector<string>& arr)
{
    for (string x : arr) {
        if (!isIsogram(x)) {
            return false;
        }
    }
    return true;
}
// Driver Code
int main()
{
    vector<string> arr = { "abcd", "derg", "erty" };
    if (allIsograms(arr)) {
        cout << "Yes";
        return 0;
    }
    cout << "No";
}


Java 语言(一种计算机语言,尤用于创建网站)


// Java program for the above approach
import java.io.*;
class GFG {
    // Function to check if a string
    // is an isogram or not
    static boolean isIsogram(String s)
    {
        int freq[] = new int[26];
        char S[] = s.toCharArray();
        for (char c : S) {
            freq++;
            if (freq > 1) {
                return false;
            }
        }
        return true;
    }
    // Function to check if array arr contains
    // all isograms or not
    static boolean allIsograms(String arr[])
    {
        for (String x : arr) {
            if (isIsogram(x) == false) {
                return false;
            }
        }
        return true;
    }
    // Driver Code
    public static void main(String[] args)
    {
        String arr[] = { "abcd", "derg", "erty" };
        if (allIsograms(arr) == true) {
            System.out.println("Yes");
        }
        else {
            System.out.println("No");
        }
    }
}
 // This code is contributed by Potta Lokesh


Python 3


# Python code for the above approach
# Function to check if a string
# is an isogram or not
def isIsogram (s):
    freq = [0] * 26
    for c in s:
        freq[ord(c) - ord('a')] += 1
        if (freq[ord(c) - ord('a')] > 1):
            return False
    return True
# Function to check if array arr contains
# all isograms or not
def allIsograms (arr):
    for x in arr:
        if (not isIsogram(x)):
            return False
    return True
# Driver Code
arr = ["abcd", "derg", "erty"]
if (allIsograms(arr)):
    print("Yes")
else:
    print("No")
# This code is contributed by Saurabh Jaiswal


C


// C# program for the above approach
using System;
public class GFG {
    // Function to check if a string
    // is an isogram or not
    static bool isIsogram(String s)
    {
        int []freq = new int[26];
        char []S = s.ToCharArray();
        foreach (char c in S) {
            freq++;
            if (freq > 1) {
                return false;
            }
        }
        return true;
    }
    // Function to check if array arr contains
    // all isograms or not
    static bool allIsograms(String []arr)
    {
        foreach (String x in arr) {
            if (isIsogram(x) == false) {
                return false;
            }
        }
        return true;
    }
    // Driver Code
    public static void Main(String[] args)
    {
        String []arr = { "abcd", "derg", "erty" };
        if (allIsograms(arr) == true) {
            Console.WriteLine("Yes");
        }
        else {
            Console.WriteLine("No");
        }
    }
}
// This code is contributed by 29AjayKumar


java 描述语言


<script>
    // Javascript code for the above approach
    // Function to check if a string
    // is an isogram or not
    const isIsogram = (s) => {
        let freq = new Array(26).fill(0);
        for (let c in s) {
            freq[s.charCodeAt(c) - 'a'.charCodeAt(0)]++;
            if (freq[s.charCodeAt(c) - 'a'.charCodeAt(0)] > 1) {
                return false;
            }
        }
        return true;
    }
    // Function to check if array arr contains
    // all isograms or not
    const allIsograms = (arr) => {
        for (let x in arr) {
            if (!isIsogram(arr[x])) {
                return false;
            }
        }
        return true;
    }
    // Driver Code
    let arr = ["abcd", "derg", "erty"];
    if (allIsograms(arr))
        document.write("Yes");
    else
        document.write("No");
    // This code is contributed by rakeshsahni
script>

Output

Yes

时间复杂度: O(N*M),其中 N 是数组的大小,M 是最长字符串的大小
T3】辅助空间: O(1)


推荐阅读
  • 在尝试对 QQmlPropertyMap 类进行测试驱动开发时,发现其派生类中无法正常调用槽函数或 Q_INVOKABLE 方法。这可能是由于 QQmlPropertyMap 的内部实现机制导致的,需要进一步研究以找到解决方案。 ... [详细]
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • 技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统
    技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统 ... [详细]
  • 本文详细解析了客户端与服务器之间的交互过程,重点介绍了Socket通信机制。IP地址由32位的4个8位二进制数组成,分为网络地址和主机地址两部分。通过使用 `ipconfig /all` 命令,用户可以查看详细的IP配置信息。此外,文章还介绍了如何使用 `ping` 命令测试网络连通性,例如 `ping 127.0.0.1` 可以检测本机网络是否正常。这些技术细节对于理解网络通信的基本原理具有重要意义。 ... [详细]
  • 大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式
    大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式 ... [详细]
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • 本文是Java并发编程系列的开篇之作,将详细解析Java 1.5及以上版本中提供的并发工具。文章假设读者已经具备同步和易失性关键字的基本知识,重点介绍信号量机制的内部工作原理及其在实际开发中的应用。 ... [详细]
  • 2.2 组件间父子通信机制详解
    2.2 组件间父子通信机制详解 ... [详细]
  • 属性类 `Properties` 是 `Hashtable` 类的子类,用于存储键值对形式的数据。该类在 Java 中广泛应用于配置文件的读取与写入,支持字符串类型的键和值。通过 `Properties` 类,开发者可以方便地进行配置信息的管理,确保应用程序的灵活性和可维护性。此外,`Properties` 类还提供了加载和保存属性文件的方法,使其在实际开发中具有较高的实用价值。 ... [详细]
  • 利用 JavaScript 和 Node.js 验证时间的有效性
    本文探讨了如何使用 JavaScript 和 Node.js 验证时间的有效性。通过编写一个 `isTime` 函数,我们可以确保输入的时间格式正确且有效。该函数利用正则表达式匹配时间字符串,检查其是否符合常见的日期时间格式,如 `YYYY-MM-DD` 或 `HH:MM:SS`。此外,我们还介绍了如何处理不同时间格式的转换和验证,以提高代码的健壮性和可靠性。 ... [详细]
  • 构建基础的字符串队列实现方法
    在探讨如何构建基础的字符串队列实现方法时,我们发现许多开发者在面对这一问题时常常感到困惑。实际上,队列的基本原理非常简单,即遵循先进先出的原则。然而,在具体实现过程中,需要注意的是Java语言中并没有指针的概念,因此需要通过嵌套类来模拟指针,进而构建链表结构。这种实现方式不仅能够有效地管理字符串数据,还能提升代码的可读性和维护性。 ... [详细]
  • Java Socket 关键参数详解与优化建议
    Java Socket 的 API 虽然被广泛使用,但其关键参数的用途却鲜为人知。本文详细解析了 Java Socket 中的重要参数,如 backlog 参数,它用于控制服务器等待连接请求的队列长度。此外,还探讨了其他参数如 SO_TIMEOUT、SO_REUSEADDR 等的配置方法及其对性能的影响,并提供了优化建议,帮助开发者提升网络通信的稳定性和效率。 ... [详细]
  • 本文介绍了如何利用Struts1框架构建一个简易的四则运算计算器。通过采用DispatchAction来处理不同类型的计算请求,并使用动态Form来优化开发流程,确保代码的简洁性和可维护性。同时,系统提供了用户友好的错误提示,以增强用户体验。 ... [详细]
  • 深入解析JavaScript柯里化的实现机制及其应用场景
    本文深入探讨了JavaScript中柯里化的实现机制及其应用场景。通过详细的示例代码,文章全面解析了柯里化的工作原理和实际应用,为读者提供了宝贵的学习资源,有助于提升编程技能和解决实际开发中的问题。 ... [详细]
  • C++ 异步编程中获取线程执行结果的方法与技巧及其在前端开发中的应用探讨
    本文探讨了C++异步编程中获取线程执行结果的方法与技巧,并深入分析了这些技术在前端开发中的应用。通过对比不同的异步编程模型,本文详细介绍了如何高效地处理多线程任务,确保程序的稳定性和性能。同时,文章还结合实际案例,展示了这些方法在前端异步编程中的具体实现和优化策略。 ... [详细]
author-avatar
三星anycall
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有