From b011a257f36905a125a4b679ac23f1dde5c11d52 Mon Sep 17 00:00:00 2001 From: OsmanRodrigues Date: Mon, 24 Aug 2020 22:43:42 -0300 Subject: [PATCH 1/2] =?UTF-8?q?resolu=C3=A7ao=20dos=20exercicios?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- semana23/exercicios-aula72/.gitignore | 2 + semana23/exercicios-aula72/README.md | 54 +++++++++++++++ semana23/exercicios-aula72/package-lock.json | 69 ++++++++++++++++++++ semana23/exercicios-aula72/package.json | 17 +++++ semana23/exercicios-aula72/src/index.ts | 43 ++++++++++++ semana23/exercicios-aula72/tsconfig.json | 14 ++++ 6 files changed, 199 insertions(+) create mode 100644 semana23/exercicios-aula72/.gitignore create mode 100644 semana23/exercicios-aula72/README.md create mode 100644 semana23/exercicios-aula72/package-lock.json create mode 100644 semana23/exercicios-aula72/package.json create mode 100644 semana23/exercicios-aula72/src/index.ts create mode 100644 semana23/exercicios-aula72/tsconfig.json diff --git a/semana23/exercicios-aula72/.gitignore b/semana23/exercicios-aula72/.gitignore new file mode 100644 index 0000000..563ba71 --- /dev/null +++ b/semana23/exercicios-aula72/.gitignore @@ -0,0 +1,2 @@ +/node_modules +/build \ No newline at end of file diff --git a/semana23/exercicios-aula72/README.md b/semana23/exercicios-aula72/README.md new file mode 100644 index 0000000..dd7d403 --- /dev/null +++ b/semana23/exercicios-aula72/README.md @@ -0,0 +1,54 @@ +### ExercĂ­cios aula 72 + +## 1. +### Resposta: +~~~typescript +function isOneEdit(target: string, reference: string){ + if(reference.length > target.length + 1 || reference.length === target.length -2){ + return false + } + + const targetCharList = target.split("") + const referenceCharList = reference.split("") + + const strangerCharList = referenceCharList.filter(char=>{ + return ! targetCharList.includes(char) + }) + + if(strangerCharList.length > 1){ + return false + } + + return true +} +~~~ + +## 2. +### Resposta: +~~~typescript +interface HashTable{ + [key: string]: number +} + +function sequenceCount(target: string){ + const count: HashTable = {} + const splitedStr = target.split("") + let finalStr = "" + + splitedStr.forEach(char=>{ + if(count[char]){ + count[char] += 1 + }else{ + count[char] = 1 + } + }) + + for(const char in count){ + finalStr += char+`${count[char]}` + } + + return finalStr.length > target.length ? target : finalStr +} +~~~ + +### Fim dos exercĂ­cios \ No newline at end of file diff --git a/semana23/exercicios-aula72/package-lock.json b/semana23/exercicios-aula72/package-lock.json new file mode 100644 index 0000000..2736d6d --- /dev/null +++ b/semana23/exercicios-aula72/package-lock.json @@ -0,0 +1,69 @@ +{ + "name": "exercicios-aula72", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@types/node": { + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.6.0.tgz", + "integrity": "sha512-mikldZQitV94akrc4sCcSjtJfsTKt4p+e/s0AGscVA6XArQ9kFclP+ZiYUMnq987rc6QlYxXv/EivqlfSLxpKA==" + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "ts-node": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.0.0.tgz", + "integrity": "sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg==", + "requires": { + "arg": "^4.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" + } + }, + "typescript": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.2.tgz", + "integrity": "sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==" + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" + } + } +} diff --git a/semana23/exercicios-aula72/package.json b/semana23/exercicios-aula72/package.json new file mode 100644 index 0000000..eb1cdab --- /dev/null +++ b/semana23/exercicios-aula72/package.json @@ -0,0 +1,17 @@ +{ + "name": "exercicios-aula72", + "version": "1.0.0", + "description": "Exercicios aula 72, da semana 23", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "start": "clear && tsc && ts-node ./src/index.ts" + }, + "author": "OsmanRodrigues", + "license": "ISC", + "dependencies": { + "@types/node": "^14.6.0", + "ts-node": "^9.0.0", + "typescript": "^4.0.2" + } +} diff --git a/semana23/exercicios-aula72/src/index.ts b/semana23/exercicios-aula72/src/index.ts new file mode 100644 index 0000000..5671583 --- /dev/null +++ b/semana23/exercicios-aula72/src/index.ts @@ -0,0 +1,43 @@ +function isOneEdit(target: string, reference: string){ + if(reference.length > target.length + 1 || reference.length === target.length -2){ + return false + } + + const targetCharList = target.split("") + const referenceCharList = reference.split("") + + const strangerCharList = referenceCharList.filter(char=>{ + return ! targetCharList.includes(char) + }) + + if(strangerCharList.length > 1){ + return false + } + + return true +} + +interface HashTable{ + [key: string]: number +} + +function sequenceCount(target: string){ + const count: HashTable = {} + const splitedStr = target.split("") + let finalStr = "" + + splitedStr.forEach(char=>{ + if(count[char]){ + count[char] += 1 + }else{ + count[char] = 1 + } + }) + + for(const char in count){ + finalStr += char+`${count[char]}` + } + + return finalStr.length > target.length ? target : finalStr +} + diff --git a/semana23/exercicios-aula72/tsconfig.json b/semana23/exercicios-aula72/tsconfig.json new file mode 100644 index 0000000..2bfbb23 --- /dev/null +++ b/semana23/exercicios-aula72/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "noImplicitAny": true, + "removeComments": true, + "preserveConstEnums": true, + "outDir": "build", + "sourceMap": true, + "target": "es6", + "module": "commonjs", + "esModuleInterop": true + }, + "include": ["src/**/*"], + "exclude": ["node_modules"] +} \ No newline at end of file From aa4be55a3d4afa10c9d90bd0797889d0b55cc5df Mon Sep 17 00:00:00 2001 From: OsmanRodrigues Date: Tue, 25 Aug 2020 13:51:24 -0300 Subject: [PATCH 2/2] ajuste na condicional do primeiro if da isOneEdit --- semana23/exercicios-aula72/README.md | 2 +- semana23/exercicios-aula72/src/index.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/semana23/exercicios-aula72/README.md b/semana23/exercicios-aula72/README.md index dd7d403..605d429 100644 --- a/semana23/exercicios-aula72/README.md +++ b/semana23/exercicios-aula72/README.md @@ -4,7 +4,7 @@ ### Resposta: ~~~typescript function isOneEdit(target: string, reference: string){ - if(reference.length > target.length + 1 || reference.length === target.length -2){ + if(reference.length > target.length + 1 || reference.length <= target.length -2){ return false } diff --git a/semana23/exercicios-aula72/src/index.ts b/semana23/exercicios-aula72/src/index.ts index 5671583..fafb6d1 100644 --- a/semana23/exercicios-aula72/src/index.ts +++ b/semana23/exercicios-aula72/src/index.ts @@ -1,5 +1,5 @@ function isOneEdit(target: string, reference: string){ - if(reference.length > target.length + 1 || reference.length === target.length -2){ + if(reference.length > target.length + 1 || reference.length <= target.length -2){ return false }