leetcode-49.字母异位词分组

news2024/11/20 17:38:44

1. 题目

在这里插入图片描述

2. 解答

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_STRLEN (10000 + 1)
#define MAX_CHARLEN (100 + 1)

char map[128] = {0};
char map_start[128] = {0};

void solve(char input[MAX_STRLEN][MAX_CHARLEN], int num)
{
    int visited[num];
    for (int i = 0; i < num; i++) visited[i] = 0;

    for (int i = 0; i < num; i++) {

        if (visited[i]) continue;

        printf("[");

        memset(map_start, 0, 128);
        for (int j = 0; j < strlen(input[i]); j++) {
            map_start[input[i][j]]++;
        }

        printf("%s", input[i]);

        visited[i] = 1;

    
        for (int j = i; j < num; j++) {
            if (j == num -1) printf("]");
            if (visited[j] || i == j) continue;

            memset(map, 0, 128);

            for (int k = 0; k < strlen(input[j]); k++) {
                map[input[j][k]]++;
            }

            if (memcmp(map, map_start, 128) == 0) {
                visited[j] = 1;
                printf(", %s", input[j]);
            }
        }
    }

    printf("]\n");
}

int main()
{
    char strs[MAX_STRLEN];

    fgets(strs, MAX_STRLEN, stdin);

    strs[strlen(strs) - 1] = '\0';

    int num = 0;

    char input[MAX_STRLEN][MAX_CHARLEN] = {{0}};

    char *token = strtok(strs, "[, \"\"]");

    while(token) {
        printf("token:%s\n", token);
        memcpy(input[num], token, strlen(token));
        token = strtok(NULL, "[, \"\"]");
        num++;
    }

    solve(input, num);

    return 0;

}

运行结果:

G3-3579:~/data/source/leetcode$ gcc 49.c
G3-3579:~/data/source/leetcode$ ./a.out 
["eat", "tea", "tan", "ate", "nat", "bat"]
token:eat
token:tea
token:tan
token:ate
token:nat
token:bat
[eat, tea, ate][tan, nat][bat]]
G3-3579:~/data/source/leetcode$ ./a.out 
["a"]
token:a
[a]]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1098704.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自学\跳槽\转行做网络安全行业的一些建议

前言 前段时间&#xff0c;知名机构麦可思研究院发布了《2022年中国本科生就业报告》 &#xff0c;其中详细列出近五年的本科绿牌专业&#xff0c;其中&#xff0c;信息安全位列第一。 网络安全前景 对于网络安全的发展与就业前景&#xff0c;想必无需我多言&#xff0c;作为当…

最好的开放式蓝牙耳机有哪些?排名前五的开放式耳机五强

越来越多的人开始选择蓝牙耳机作为他们的音频解决方案。蓝牙耳机市场提供了各式各样的选择&#xff0c;不仅有常见的头戴式、耳塞式和半入耳式&#xff0c;还有一种备受欢迎的"开放式耳机"。今天&#xff0c;我将向大家介绍一些优秀的开放式蓝牙耳机款式&#xff0c;…

OTN的7层结构

文章目录 一、国际规定OTN的7层结构二、类比OTN的7层结构三、实际网络OTN的7层结构OTN分层结构的作用 OTN&#xff08;Optical Transport Network&#xff0c;光传送网&#xff09;是一个层次化网络&#xff0c;业务信号在不同层次之间进行传输。 一、国际规定OTN的7层结构 根…

将中文名格式化输出为英文名

要求&#xff1a; 编写Java程序&#xff0c;输入样式为&#xff1a;Zhong wen ming的人名&#xff0c;以 Ming,Zhong.W 的形式打印出来。其中.W是中间单词的首字母&#xff1b;例如输入”Willian Jefferson Clinton“,输出形式为&#xff1a;Clinton,Willian.J public static …

鸿蒙OS app开发环境搭建

鸿蒙OS是华为开源的支持移动设备或者物联网设备的操作系统&#xff0c;本文主要描述鸿蒙OS应用开发环境搭建。 如上所示&#xff0c;从鸿蒙OS官方网站下载应用开发工具DevEco Studio的最新版本 如上所示&#xff0c;DevEco Studio安装完成&#xff0c;安装与配置nodejs、ohpm以…

树莓派javaws launch.jnlp远程启动服务器

需要登录到IPMI进行重启&#xff0c;目前使用的树莓派系统&#xff0c;记录下在Ubuntu桌面系统中打开jnlp的操作&#xff1a; sudo apt -y install icedtea-netx javaws viewer.jnlp 运行上述命令后界面如下所示&#xff1a; 使用的是系统自生成的证书&#xff0c;直接点击yes…

同为科技(TOWE)关于风力发电雷电防护的解决方案

风能作为一种可再生清洁能源&#xff0c;是国家新能源发展战略的重要组成部分。我国风能开发潜力高达2.510GW以上&#xff0c;近年来风力发电机组逐年增加&#xff0c;截止到2022年&#xff0c;全国风电装机容量约3.5亿千瓦&#xff0c;同比增长16.6%。然而&#xff0c;由于风力…

关于Skywalking Agent customize-enhance-trace对应用复杂参数类型取值

对于Skywalking Agent customize-enhance-trace 大家应该不陌生了&#xff0c;主要支持以非入侵的方式按用户自定义的Span跟踪对应的应用方法&#xff0c;并获取数据。 参考https://skywalking.apache.org/docs/skywalking-java/v9.0.0/en/setup/service-agent/java-agent/cust…

【MATLAB源码-第48期】基于matlab的16QAM信号盲解调仿真。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 16QAM (16个象限幅度调制) 是一种广泛使用的数字调制技术。在无线和有线通信系统中&#xff0c;为了在固定的带宽内发送更多的信息&#xff0c;高阶调制如16QAM被使用。下面是16QAM盲解调的基本步骤、优缺点及应用场景。 16Q…

C语言系统化精讲(五): 循环控制语句

文章目录 一、C语言while循环和do while循环详解1.1 while循环1.2 do-while循环 二、C语言for循环(for语句)详解2.1 基本使用2.2 for循环的变体2.3 for语句中的逗号应用 三、C语言break和continue用法详解(跳出循环)3.1 break关键字3.2 continue语句 四、C语言循环嵌套详解五、…

讲解Windows系统中如何使用Python读取图片的元数据【Metadata】

文章目录 简介图像元数据如何查看图像元数据pyexiv2pyexiv2读取图片的元数据的函数接口主要部分pyexiv2的EXIF元数据说明 代码示例参考资料 简介 我们可以使用pyexiv2这个Python第三方工具在Windows系统中包读取图片文件的元数据Metadata。其中&#xff0c;经常会使用的图片元…

你了解供应链云仓系统源码里的5个核心功能吗?

为您详细介绍供应链云仓系统源码中的核心功能 供应链云仓系统是一种基于互联网的供应链管理系统&#xff0c;它利用云计算和大数据技术&#xff0c;帮助企业优化物流与库存管理、提升供应链的效率和灵活性。在供应链云仓系统的源码中&#xff0c;有许多关键功能可以帮助企业实现…

【Java 进阶篇】JavaScript 自动跳转首页案例

在这篇博客中&#xff0c;我们将创建一个JavaScript案例&#xff0c;演示如何自动跳转到网站的首页。这种自动跳转通常用于欢迎页面或广告页面等场景。我们将从头开始创建这个案例&#xff0c;逐步介绍相关的JavaScript知识&#xff0c;让初学者也能理解并实现这个功能。 1. 什…

【docker】查看容器日志

目录 一.通过查找宿主机日志路径&#xff0c;通过Linux命令查看即可。 1.1 查看容器日志路径 1.2 按照日志路径检索日志 二、通过docker命令检索日志 2.1 查看指定时间后的日志&#xff0c;只显示最后20行 2.2 查看最近10分钟的日志 2.3 查看某时间段之后的日志 2.4 查…

Java武侠文字游戏

import java.util.Random;public class Role {//姓名private String name;//血量private int blood;//性别private char gender;//长相(随机)private String face;String[] boyfaces {"风流俊雅", "气宇轩昂", "相貌英俊", "五官端正"…

【00】神经网络之初始化参数

问题描述 #随机初始化权重 w12 np.random.randn(100, 784)/np.sqrt(784) 为什么除以28 回答 这里的代码是初始化一个深度学习模型中的权重矩阵w12。权重矩阵的形状是(100, 784)&#xff0c;这是一个从784个输入节点到100个隐藏节点的全连接层。 除以np.sqrt(784)是权重初始…

web 性能优化详解(Lighthouse工具、优化方式、强缓存和协商缓存、代码优化、算法优化)

1.性能优化包含的方面 优化性能概念宽泛&#xff0c;可以从信号、系统、计算机原理、操作系统、网络通信、DNS解析、负载均衡、页面渲染。只要结合一个实际例子讲述清楚即可。 2.什么是性能&#xff1f; Web 性能是客观的衡量标准&#xff0c;是用户对加载时间和运行时的直观…

微信小程序框架---详细教程

&#x1f3ac; 艳艳耶✌️&#xff1a;个人主页 &#x1f525; 个人专栏 &#xff1a;《Spring与Mybatis集成整合》《Vue.js使用》 ⛺️ 越努力 &#xff0c;越幸运。 目录 1.框架 1.1响应的数据绑定 1.2.页面管理 1.3.基础组件 1.4.丰富的 API 2.视图层 View 2.1.介绍 …

大量pod失败

随便查看pod 有的pod提示磁盘不足 查看csi-nfs 的pod。有一个处于Evicted 状态 kubectl get pod -n kube-system csi-nfs-node-jlxc6 3/3 Running 10 (4d16h ago) 20d csi-nfs-node-vnr5q 0/3 Evicted 0 10m 查看这个pod。提示磁盘不足 kubectl describe pod -n kube-system…

低代码技术这么香,如何把它的开发特点发挥到极致?

前言 什么是低代码技术&#xff1f; 低代码是一种可视化软件开发方法&#xff0c;通过最少的编码更快地交付应用程序。图形用户界面和拖放功能使开发过程的各个方面自动化&#xff0c;消除了对传统计算机编程方法的依赖。 文章目录 前言低代码平台怎么选&#xff1f;用友Yonbu…